📄 bmunit.pas
字号:
unit bmunit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Buttons, ToolWin, ComCtrls, StdCtrls, Mask, DBCtrls,
Grids, DBGrids;
type
Tbmform = class(TForm)
Panel1: TPanel;
ToolBar1: TToolBar;
sb_close: TSpeedButton;
sb_cancel: TSpeedButton;
sb_save: TSpeedButton;
sb_del: TSpeedButton;
sb_edit: TSpeedButton;
sb_add: TSpeedButton;
Panel2: TPanel;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
DBGrid1: TDBGrid;
procedure sb_closeClick(Sender: TObject);
procedure sb_addClick(Sender: TObject);
procedure sb_editClick(Sender: TObject);
procedure sb_saveClick(Sender: TObject);
procedure sb_cancelClick(Sender: TObject);
procedure sb_delClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBEdit1Enter(Sender: TObject);
procedure DBEdit1Exit(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
bmform: Tbmform;
implementation
uses dmunit;
{$R *.dfm}
procedure Tbmform.sb_closeClick(Sender: TObject);
begin
if sb_save.Enabled=true then
begin
messagebox(self.Handle,'请确定是保存还是取消数据!','提示信息',mb_iconinformation);
exit;
end;
dm.bm.Active:=false; // 关闭bm
dm.person.Active:=false; // 关闭person
close;
end;
procedure Tbmform.sb_addClick(Sender: TObject);
begin
try
dm.bm.Append ;
dbedit1.ReadOnly:=false; dbedit2.ReadOnly :=false;
dbedit1.SetFocus ;
dbgrid1.Enabled:=false;
sb_add.Enabled :=false; sb_edit.Enabled :=false;
sb_del.Enabled :=false; sb_save.Enabled :=true;
sb_cancel.Enabled :=true;
except
messagebox(self.Handle,'增加数据失败','提示信息',mb_iconinformation);
end;
end;
procedure Tbmform.sb_editClick(Sender: TObject);
begin
if dm.bm.RecordCount =0 then
exit;
try
dm.bm.Edit;
dbedit1.ReadOnly:=false; dbedit2.ReadOnly :=false;
dbedit1.SetFocus ;
dbgrid1.Enabled:=false;
sb_add.Enabled :=false; sb_edit.Enabled :=false;
sb_del.Enabled :=false; sb_save.Enabled :=true;
sb_cancel.Enabled :=true;
except
messagebox(self.Handle,'编辑数据失败','提示信息',mb_iconinformation);
end;
end;
procedure Tbmform.sb_saveClick(Sender: TObject);
begin
try
dm.bm.Post ;
dbedit1.ReadOnly:=true; dbedit2.ReadOnly :=true;
dbedit1.SetFocus ;
dbgrid1.Enabled:=true;
sb_add.Enabled :=true; sb_edit.Enabled :=true;
sb_del.Enabled :=true; sb_save.Enabled :=false;
sb_cancel.Enabled :=false;
except
messagebox(self.Handle,'保存数据失败','提示信息',mb_iconinformation);
end;
end;
procedure Tbmform.sb_cancelClick(Sender: TObject);
begin
try
dm.bm.Cancel ;
dbedit1.ReadOnly:=true; dbedit2.ReadOnly :=true;
dbedit1.SetFocus ;
dbgrid1.Enabled:=true;
sb_add.Enabled :=true; sb_edit.Enabled :=true;
sb_del.Enabled :=true; sb_save.Enabled :=false;
sb_cancel.Enabled :=false;
except
messagebox(self.Handle,'取消数据失败','提示信息',mb_iconinformation);
end;
end;
procedure Tbmform.sb_delClick(Sender: TObject);
begin
if dm.bm.RecordCount =0 then
exit;
dm.person.Close;
dm.person.CommandText:='select * from 职工 where 部门编号=:id';
dm.person.Parameters.ParamByName('id').Value:=dm.bm.FieldValues['部门编号'];
dm.person.Open ;
if dm.person.RecordCount>0 then
begin
messagebox(self.Handle,'该部门有职工存在,不能删除!','提示信息',mb_iconinformation);
exit;
end;
try
if messagebox(self.Handle,'确定要删除当前数据吗?','提示信息',mb_yesno+mb_iconquestion)=idyes then
dm.bm.Delete ;
except
messagebox(self.Handle,'删除当前数据失败','提示信息',mb_iconinformation);
end;
end;
procedure Tbmform.FormCreate(Sender: TObject);
begin
keypreview:=true;
dm.bm.Open ;
end;
procedure Tbmform.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=113 then
if sb_add.Enabled =true then
sb_add.Click ;
if key=114 then
if sb_edit.Enabled =true then
sb_edit.Click ;
if key=116 then
if sb_del.Enabled =true then
sb_del.Click ;
if key=117 then
if sb_save.Enabled =true then
sb_save.Click ;
if key=118 then
if sb_cancel.Enabled =true then
sb_cancel.Click ;
if key=119 then
sb_close.Click ;
end;
procedure Tbmform.DBEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
selectnext(sender as twincontrol,true,true);
end;
procedure Tbmform.DBEdit1Enter(Sender: TObject);
begin
(sender as tdbedit).Color:=clwhite;
end;
procedure Tbmform.DBEdit1Exit(Sender: TObject);
begin
(sender as tdbedit).Color:=$00FFB824;
end;
procedure Tbmform.DBGrid1TitleClick(Column: TColumn);
begin
dm.bm.Sort:=column.FieldName ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -