How to handle the dbnavigator?

Hi Folks,

Using this procedure > TForm1.dbNavClick(Sender: TObject; Button: TNavigatorButton);
begin

How Can I differentiate which button is clicked a working sample would be great ;)

Regards,

Peter
PeterdeBAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

PeterdeBAuthor Commented:
Ah wait lol I can't right or better said I needn't?
0
2266180Commented:
the button clicked is in Button: TNavigatorButton

you use it like:

case button of
  nbFirst: showmessage('first clicked');
  nbprior:showmessage('prior clicked');
..... etc
end;
you can find teh possible values in help by clicking on TNavigateBtn and hitting ctrl+F1
here is the definition:
TNavigateBtn = (nbFirst, nbPrior, nbNext, nbLast,
                  nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh);
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
moorhouselondonCommented:
procedure gofirst;
..

procedure goprior;
..


TForm1.dbNavClick(Sender: TObject; Button: TNavigatorButton);
begin
If button=nbfirst then gofirst else
if button=nbprior then goprior etc.
end;
0
Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

moorhouselondonCommented:
ciuly can type faster than me!
0
moorhouselondonCommented:
bonus comment: more things to do with navigate

http://delphi.about.com/od/usedbvcl/l/aa090203a.htm
0
2266180Commented:
>> ciuly can type faster than me!

actually, it's been almost an hour since he posted his question :P
0
Geert GOracle dbaCommented:
what are you trying to do ?
you can provide your own routines instead of the datasets ones
0
moorhouselondonCommented:
>actually, it's been almost an hour since he posted his question :P

we all wait for the Hourly Expert Alerts, by the look of it.
0
2266180Commented:
>> we all wait for the Hourly Expert Alerts, by the look of it.

actually, I was watching a movie :D I get the alerts by the minute :P
0
PeterdeBAuthor Commented:
Thanks all! I noticed that it was possible to edit the database without saving it, closing the program and then the modifications were lost. So I thouhgt maybe I could use the different buttons and buttonclicks in conjunction with teh close query to determine wheter or not to close the program. It's for a friend of mine.

Regards,

Peter

0
PeterdeBAuthor Commented:
As always muchos gracias my friend!
0
moorhouselondonCommented:
You can check if the table is in a Modified state.  Use CloseQuery to terminate the program, and set the "Accept" variable according to whether or not the table is in Modified state.  If you DoubleClick the CloseQuery Event on the Form, look at the header of the event, you will see the Accept variable there.  All you have to do is plonk the correct value in the procedure to either Accept the Close, or reject the Form's closure.

Other things that might be of interest:-

similarly, if you want the user to explicitly Post a Record before using First, Next, Prior, First or Last, you can either disable these buttons until Table Modified is False (either the user has pressed Post or Cancel), or you can wait for the user to press one of these buttons, then Showmessage('Can not do this'); if Table is Modified.

There is nothing to stop you having more than one DBNavigator for your Datasource - you could have one for First Prior Next Last, and another for the other Buttons/functions (Post, Cancel, etc).
0
moorhouselondonCommented:
procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin

Sorry, it's not Accept, it's CanClose.  In which case you can say

CanClose:=not tablex.modified;
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.