Solved

How to handle the dbnavigator?

Posted on 2008-11-02
13
257 Views
Last Modified: 2012-05-05
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
0
Comment
Question by:PeterdeB
  • 6
  • 3
  • 3
  • +1
13 Comments
 

Author Comment

by:PeterdeB
Comment Utility
Ah wait lol I can't right or better said I needn't?
0
 
LVL 28

Accepted Solution

by:
ciuly earned 500 total points
Comment Utility
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
 
LVL 31

Expert Comment

by:moorhouselondon
Comment Utility
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
 
LVL 31

Expert Comment

by:moorhouselondon
Comment Utility
ciuly can type faster than me!
0
 
LVL 31

Expert Comment

by:moorhouselondon
Comment Utility
bonus comment: more things to do with navigate

http://delphi.about.com/od/usedbvcl/l/aa090203a.htm
0
 
LVL 28

Expert Comment

by:ciuly
Comment Utility
>> ciuly can type faster than me!

actually, it's been almost an hour since he posted his question :P
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 36

Expert Comment

by:Geert Gruwez
Comment Utility
what are you trying to do ?
you can provide your own routines instead of the datasets ones
0
 
LVL 31

Expert Comment

by:moorhouselondon
Comment Utility
>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
 
LVL 28

Expert Comment

by:ciuly
Comment Utility
>> 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
 

Author Comment

by:PeterdeB
Comment Utility
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
 

Author Closing Comment

by:PeterdeB
Comment Utility
As always muchos gracias my friend!
0
 
LVL 31

Expert Comment

by:moorhouselondon
Comment Utility
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
 
LVL 31

Expert Comment

by:moorhouselondon
Comment Utility
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

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

771 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now