DBNavigator组件用于在数据集进行记录导航,当用户单击DBNaVigator组件的某个按钮时,可实现记录
指针的前移、后移,插入‘删除、修改当前记录等操作,而无须编写任何程序代码。
1. DBNavigator组件按钮功能
First按钮 将指针移到数据表的第一条记录。
Previous按钮 将指针前移一条记录o
Next按钮 将指针后移一条记录。
Last按钮 将指针移到数据表的最后一条记录。
Insert按钮 在当前记录前插入一条新记录,并将数据集组件置于插人状态。
Delete按钮 删除当前记录。
Edit按钮 将数据集置于编辑状态。
Post按钮 提交对当前记录的修改。
Cancel 按钮 取消对当前记录的修改。
Refresh按钮 清除数据浏览组件的显示缓冲区,并用与其相连的数据集组件中的记录刷新显示缓冲区。
2. 主要属性
(1)VisibleButtons属性
该属性用于隐藏或显示DBNavigator组件的按钮。单击该属性前的“+"号,出现许多子属性:
nbFirst、nbPrior、nbNext、nbLast、nbAdd、nb’Delete、mbEdit、nbPost、nbCancel、nbRefresh。选择
子属性为 True则相应的按钮就会显示出来,若选择子属性为False则相应的按钮就会隐藏。例如, 在查询系统中,
只需要4个按钮First、Prior、Next、Last,此时只需要将前4个子属性设置为:True, 其余属性设为False即可。
(2)ShowHint属性
ShowHint属性值为 true,则显示DBNavigator组件各按钮的动态提示信息;值为False,
则不显示DBNavigator组件各按钮的动态提示信息。
(3)Hints属性
Hints属性用于设置DBNavigator’组件各按钮的动态提示信息。单击’rString右边的省略按钮,
进入动态提示信息编辑框,在框内输人各按钮的动态提示信息,如输入:“第一条记录”、“前一个记录"、“后一个
记录”、“最后一个记录”等,按OK按钮后,将ShowHint属性设置为’lTrue,则程序执行后,当鼠标移动到第一个
按钮上时会动态提示“第一条记录"。
(4)ConfirmDelete
当该属性值为True时,用DBNavigator的Delete按钮删除记录有确认提示,值为False时,删除记录无确认提示。
3. 常用方法与事件
(1)OnClick事件
当用户单击DBNavigator组件的某个按钮时触发该事件,其参数Button用于表示用户按下的按钮,参数Button
取值为:nbFirst、nbPrior、nbNext、nbLast、nbInsert、nb’Delete、mbEdit、nbPostnbCancel、nbRefresh。
代码如下:
begin
Butt:=Button;
case Butt of
nbFirst:Edit7.Text:=’First’;
nbNext:Edit7.Text:=’Next’;
nbPrior:Edit7.Text:=’Prior’;
nbLast:Edit7.Text:=’Last’;
nbDelete:Edit7.Text::’Delete’;
end;
end;
程序执行后,单击DBNavigator的前几个按钮,Edit7组件会显示出按钮的类型。
(2)BeforeAction事件
该事件发生在用户单击DBNavigator组件的某个按钮,但相应动作尚未执行前,Button参数表示用户按下的是哪个按钮。
例如:点击DBNavigator的Delete按钮时显示中文对话框
//在DBNavigator中BeforAction事件中写如下代码
procedure TForm1.DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
if Button=nbDelete then
begin
if MessageBox(Handle,'确实要删除么?','系统提示',MB_YESNO or MB_ICONQUESTION)=ID_NO then
Abort
else begin
Adoquery1.Delete;
Abort;
end;
end;
end;
(3)DBNavigator控件的按钮显示成中文
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ExtCtrls, DBCtrls;
type
TMyNavgator = class(TDBNavigator);
TForm1 = class(TForm)
DBNavigator1: TDBNavigator;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
TMyNavgator(DBNavigator1).Buttons[nbFirst].Caption:= '第一条 ';
// TMyNavgator(DBNavigator1).Buttons[nbFirst].Glyph:=nil; //不显示图标
TMyNavgator(DBNavigator1).Buttons[nbPrior].Caption:= '上一条 ';
TMyNavgator(DBNavigator1).Buttons[nbNext].Caption:= '下一条 ';
TMyNavgator(DBNavigator1).Buttons[nbLast].Caption:= '最后一条 ';
TMyNavgator(DBNavigator1).Buttons[nbInsert].Caption:= '添加 ';
TMyNavgator(DBNavigator1).Buttons[nbDelete].Caption:= '删除 ';
TMyNavgator(DBNavigator1).Buttons[nbEdit].Caption:= '修改 ';
TMyNavgator(DBNavigator1).Buttons[nbPost].Caption:= '提交 ';
TMyNavgator(DBNavigator1).Buttons[nbCancel].Caption:= '撤销 ';
TMyNavgator(DBNavigator1).Buttons[nbRefresh].Caption:= '刷新 ';
end;
end.