Solved

TDBGrid for Delphi 1

Posted on 1998-01-16
7
332 Views
Last Modified: 2010-04-04
When using a TDBGrid, with Delphi 1, how can you stop it creating a new record, when the user hits the tab key on the last record displayed.
0
Comment
Question by:nichs
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
7 Comments
 
LVL 3

Expert Comment

by:Matvey
ID: 1356901
I don't remember if D1 has the "abort" procedure.
But in general if you call this one in the BeforeInsert event for the TTable component then it cancels the creation of the new record.

Tell me if D1 has it or not, then I'll be able to check it more occurately.

Hope it helps,
Matvey
0
 
LVL 8

Expert Comment

by:ZifNab
ID: 1356902
Abort is to stop the printer from printing.
Instead you've to use the Cancel method.
Like Matvey says, in the beforeinsert event you put Table1.Cancel. (Opposite of Table1.Post)

0
 
LVL 3

Expert Comment

by:Matvey
ID: 1356903
No no, I'm sure about this procedure, it just might be only in D3.
Maybe it's a new thing, but in D3 you can abort any procedure that has "Before" event by calling the "abort' proc.

IT'S NOT A METHOD
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 2

Expert Comment

by:Waldek
ID: 1356904
Maybe readonly set true
0
 
LVL 8

Expert Comment

by:ZifNab
ID: 1356905
I think that Abort is only defined in D3. Try to use Cancel.
0
 

Author Comment

by:nichs
ID: 1356906
Hi

I just wanted to say thanks for the comments to my question. I haven't had a chance to try them yet. Anyway Thanks!

..Nick
0
 
LVL 1

Accepted Solution

by:
millerw earned 100 total points
ID: 1356907
Nick--try this set of code-------

procedure TdmdStrategyYear.BeforeInsert(DataSet: TDataSet);
begin
//Used only on tabs 1 and 2 (zero based) of Setup.  Prevents user from adding
//an account to the files.
     tblAccounts.Cancel;
     tblSpreads.Cancel;
     SysUtils.Abort;
end;

That is the BeforeInsert event that I use in a program to accomplish the task.  Call the Table's Cancel event to tell the table to stop processing the insert.  Then use the Abort--defined in the SysUtils unit--to tell the TDbGrid to abort the keystroke.  That fixes it up nicely.  Can't remember WHY both calls are needed, but I remember it ran into a problem when I only called one or the other.  Try it if you want, but I'm pretty sure you have to include a call to both.

If you have problems, give me a ring.

BTW, this is D3 code so some of the procedures may not be included for D1, but the Abort should be in one way or another.  One way to fix it--kind of a round about way--is to intercept the Tab key in the KeyDown event of the TDBGrid.  In there just check to see what record you are on.  If you are on the last record and the last column (use SelectedField or SelectedIndex) then just throw out the key (Key:=0).  Word of warning about this-----MAKE SURE TO SET THE FORM THAT CONTAINS THE TDBGRID TO "KEYPREVIEW:=TRUE" SO THAT THE ASSIGNMENT OF KEY:=0 WILL WORK.

Cya,
Scott
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.

688 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question