📄 basetoolbar.pas
字号:
unit basetoolbar;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, base, Buttons, ToolWin, ComCtrls, Grids, DBGrids, ImgList, DB,
ADODB,main, StdCtrls;
type
TfrmBaseToolBar = class(TfrmBase)
CoolBar1: TCoolBar;
SB_Save: TSpeedButton;
SB_Filter: TSpeedButton;
SB_Add: TSpeedButton;
SB_Del: TSpeedButton;
SB_First: TSpeedButton;
SB_Forward: TSpeedButton;
SB_Next: TSpeedButton;
SB_Last: TSpeedButton;
TVCustomers: TTreeView;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TBCusterDetail: TTabSheet;
StatusBar: TStatusBar;
ImageList1: TImageList;
ADO_Base: TADOQuery;
DS_Base: TDataSource;
SpeedButton1: TSpeedButton;
procedure SB_AddClick(Sender: TObject);
procedure DS_BaseStateChange(Sender: TObject);
procedure SB_SaveClick(Sender: TObject);
procedure SB_DelClick(Sender: TObject);
procedure SB_FirstClick(Sender: TObject);
procedure SB_ForwardClick(Sender: TObject);
procedure SB_NextClick(Sender: TObject);
procedure SB_LastClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure DS_BaseDataChange(Sender: TObject; Field: TField);
procedure TBCusterDetailExit(Sender: TObject);
private
public
end;
const CloseForm = 8888;
var
frmBaseToolBar: TfrmBaseToolBar;
implementation
{$R *.dfm}
procedure TfrmBaseToolBar.SB_AddClick(Sender: TObject);
begin
inherited;
if (ADO_Base.State=dsEdit) or (ADO_Base.State=dsInsert) then
begin
if (MessageBox(self.Handle,'增加数据需要保存当前编辑','提示!',MB_YESNO+MB_ICONQUESTION))=IDYES then
begin
ADO_Base.Post;
SB_Save.Enabled:=false;
end
else
begin
ADO_Base.Cancel;
ADO_Base.Append;
end;
end
else
ADO_Base.Append;
end;
procedure TfrmBaseToolBar.DS_BaseStateChange(Sender: TObject);
begin
inherited;
if (ADO_Base.State=dsEdit) or (ADO_Base.State=dsInsert) then
begin
SB_Save.Enabled:=true;
SB_Add.Enabled:=false;
SB_Del.Enabled:=false;
end;
if (ADO_Base.State=dsBrowse) then
begin
SB_Save.Enabled:=false;
SB_Add.Enabled:=true;
SB_Del.Enabled:=true;
end;
end;
procedure TfrmBaseToolBar.SB_SaveClick(Sender: TObject);
begin
inherited;
if (ADO_Base.State=dsEdit) or (ADO_Base.State=dsInsert) then
begin
//ADO_Base.Post;
ADO_Base.UpdateBatch();
SB_Save.Enabled:=false;
SB_Add.Enabled:=true;
SB_Del.Enabled:=true;
end;
end;
procedure TfrmBaseToolBar.SB_DelClick(Sender: TObject);
begin
inherited;
if((ADO_Base.RecordCount>0) and (MessageBox(handle,'确定删除这笔记录吗?', '提示', MB_YESNO+MB_ICONWARNING)=IDYES)) then
begin
ADO_Base.Delete;
{for i:=0 to TVCustomers.Items.Count do
begin
if(TVCustomers.Items.Item[i].Text=sCNo) then
begin
TVCustomers.Items.Item[i].Delete;
break;
end;
end; }
end;
end;
procedure TfrmBaseToolBar.SB_FirstClick(Sender: TObject);
begin
inherited;
if (ADO_Base.State=dsEdit) or (ADO_Base.State=dsInsert) then
begin
if MessageBox(self.handle,'保存当前的编辑吗?', '提示', MB_YESNO+MB_ICONWARNING)=IDYES then
begin
ADO_Base.Post;
end
else
begin
ADO_Base.Cancel;
end;
end;
ADO_Base.First;
end;
procedure TfrmBaseToolBar.SB_ForwardClick(Sender: TObject);
begin
inherited;
if (ADO_Base.State=dsEdit) or (ADO_Base.State=dsInsert) then
begin
if MessageBox(self.handle,'保存当前的编辑吗?', '提示', MB_YESNO+MB_ICONWARNING)=IDYES then
begin
ADO_Base.Post;
end
else
begin
ADO_Base.Cancel;
end;
end;
ADO_Base.Prior;
end;
procedure TfrmBaseToolBar.SB_NextClick(Sender: TObject);
begin
inherited;
if (ADO_Base.State=dsEdit) or (ADO_Base.State=dsInsert) then
begin
if MessageBox(self.handle,'保存当前的编辑吗?', '提示', MB_YESNO+MB_ICONWARNING)=IDYES then
begin
ADO_Base.Post;
end
else
begin
ADO_Base.Cancel;
end;
end;
ADO_Base.Next;
end;
procedure TfrmBaseToolBar.SB_LastClick(Sender: TObject);
begin
inherited;
if (ADO_Base.State=dsEdit) or (ADO_Base.State=dsInsert) then
begin
if MessageBox(self.handle,'保存当前的编辑吗?', '提示', MB_YESNO+MB_ICONWARNING)=IDYES then
begin
ADO_Base.Post;
end
else
begin
ADO_Base.Cancel;
end;
end;
ADO_Base.Last;
end;
procedure TfrmBaseToolBar.FormShow(Sender: TObject);
begin
inherited;
ADO_Base.Active:=true;
end;
procedure TfrmBaseToolBar.SpeedButton1Click(Sender: TObject);
begin
inherited;
PostMessage(frmMain.Handle,CloseForm,0,0);
end;
procedure TfrmBaseToolBar.DS_BaseDataChange(Sender: TObject;
Field: TField);
begin
inherited;
if DS_Base.DataSet.RecNo=DS_Base.DataSet.RecordCount then
begin
SB_First.Enabled:=true;
SB_Forward.Enabled:=true;
SB_Next.Enabled:=false;
SB_Last.Enabled:=false;
end;
if DS_Base.DataSet.RecNo=1 then
begin
SB_First.Enabled:=false;
SB_Forward.Enabled:=false;
SB_Next.Enabled:=true;
SB_Last.Enabled:=true;
end;
if (DS_Base.DataSet.RecNo>1) and (DS_Base.DataSet.RecNo<DS_Base.DataSet.RecordCount) then
begin
SB_First.Enabled:=true;
SB_Forward.Enabled:=true;
SB_Next.Enabled:=true;
SB_Last.Enabled:=true;
end;
end;
procedure TfrmBaseToolBar.TBCusterDetailExit(Sender: TObject);
begin
inherited;
inherited;
if (ADO_Base.State=dsEdit) or (ADO_Base.State=dsInsert) then
begin
if MessageBox(self.handle,'保存当前的编辑吗?', '提示', MB_YESNO+MB_ICONWARNING)=IDYES then
begin
ADO_Base.Post;
end
else
begin
ADO_Base.Cancel;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -