Delphi 仿DBNavigator方式


本文整理自网络,侵删。

 
Delphi有很好用的DBNavitor元件,美中不足的是按钮的样式稍嫌不足!那是否可以仿DBNavigator的方式?
笔者提供一个简单的范例给大家 :)
delphi_simulate_dbnavigator
一、自订首笔/上笔/下笔/末笔

procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
  BtnFirst.Enabled := not Datasource1.DataSet.Bof;
  BtnPrior.Enabled := not Datasource1.DataSet.Bof;
  BtnNext.Enabled := not Datasource1.DataSet.eof;
  BtnLast.Enabled := not Datasource1.DataSet.eof;
  if TDataSource(Sender).State in [dsEdit,dsInsert]  then begin
    BtnFirst.Enabled := False;
    BtnPrior.Enabled := False;
    BtnNext.Enabled := False;
    BtnLast.Enabled := False;
  end;
end;
二、自订新增/修改/删除/取消/存档

procedure TForm1.DataSource1StateChange(Sender: TObject);
begin
  BtnAdd.Enabled := TDataSource(Sender).State in [dsbrowse];
  BtnEdit.Enabled := TDataSource(Sender).State in [dsbrowse];
  BtnDelete.Enabled := TDataSource(Sender).State in [dsBrowse];
  BtnAbort.Enabled := TDataSource(Sender).State in [dsEdit,dsInsert];
  BtnSave.Enabled := TDataSource(Sender).State in [dsEdit,dsInsert];
end;
三、让button按下后与DBNavigator一样

procedure TForm1.BtnAbortClick(Sender: TObject);
begin
  dbnavigator1.BtnClick(nbcancel);
end;
 
procedure TForm1.BtnAddClick(Sender: TObject);
begin
  dbnavigator1.BtnClick(nbinsert);
end;
 
procedure TForm1.BtnDeleteClick(Sender: TObject);
begin
  dbnavigator1.BtnClick(nbdelete);
end;
 
procedure TForm1.BtnEditClick(Sender: TObject);
begin
  dbnavigator1.BtnClick(nbedit);
end;
 
procedure TForm1.BtnFirstClick(Sender: TObject);
begin
  dbnavigator1.BtnClick(nbfirst);
end;
 
procedure TForm1.BtnLastClick(Sender: TObject);
begin
  dbnavigator1.BtnClick(nblast);
end;
 
procedure TForm1.BtnNextClick(Sender: TObject);
begin
  dbnavigator1.BtnClick(nbnext);
end;
 
procedure TForm1.BtnPriorClick(Sender: TObject);
begin
  dbnavigator1.BtnClick(nbprior);
end;
 
procedure TForm1.BtnSaveClick(Sender: TObject);
begin
  dbnavigator1.BtnClick(nbpost);
end;

相关阅读 >>

Delphi获取千千静听歌词下载地址源码

Delphi 解决idtcpclient和idtcpserver通信中文乱码问题

Delphi 常用api 函数

Delphi 获取文件夹下包括子目录所有文件

Delphi获取程序所在目录

Delphi 随便找个网站获取格林威治时间, 并转换到北京时间

Delphi禁止webbrowser弹出窗口或者脚本错误

Delphi debug release区别是什么?

Delphi 判断网络是否连通

Delphi获取优盘的id

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...