📄 u_zy.pas
字号:
unit U_zy;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids, ComCtrls;
type
Tfrm_zyhf = class(TForm)
DBGrid1: TDBGrid;
GroupBox1: TGroupBox;
Label1: TLabel;
Edit1: TEdit;
btn_insert: TButton;
btn_delete: TButton;
btn_edit: TButton;
btn_save: TButton;
btn_cancel: TButton;
tbl_zy: TTable;
DataSource1: TDataSource;
procedure btn_insertClick(Sender: TObject);
procedure btn_deleteClick(Sender: TObject);
procedure btn_editClick(Sender: TObject);
procedure btn_saveClick(Sender: TObject);
procedure btn_cancelClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure tbl_zyAfterScroll(DataSet: TDataSet);
private
xh:integer;
appending:boolean;
{ Private declarations }
public
{ Public declarations }
end;
var
frm_zyhf: Tfrm_zyhf;
implementation
{$R *.dfm}
procedure Tfrm_zyhf.btn_insertClick(Sender: TObject);
var
n,max,i:integer;
begin
tbl_zy.DisableControls;
n:=tbl_zy.RecordCount;
max:=0;
tbl_zy.First;
while not tbl_zy.Eof do
begin
if max<tbl_zy.fieldbyname('zyxh').AsInteger then max:=tbl_zy.fieldbyname('zyxh').AsInteger;
tbl_zy.Next;
end;
xh:=1;
if n<max then
begin
for i:=1 to max do
begin
if not tbl_zy.Locate('zyxh',i,[]) then
begin
xh:=i;
break;
end;
end;
end
else
xh:=n+1;
tbl_zy.Insert;
tbl_zy.EnableControls;
btn_insert.Enabled:=false;
btn_save.Enabled:=true;
btn_cancel.Enabled:=true;
appending:=true;
Edit1.SetFocus;
end;
procedure Tfrm_zyhf.btn_deleteClick(Sender: TObject);
begin
if tbl_zy.RecordCount=0 then exit;
tbl_zy.Delete;
end;
procedure Tfrm_zyhf.btn_editClick(Sender: TObject);
begin
if tbl_zy.RecordCount=0 then exit;
btn_edit.Enabled:=false;
btn_save.Enabled:=true;
btn_cancel.Enabled:=true;
tbl_zy.Edit;
Edit1.SetFocus;
end;
procedure Tfrm_zyhf.btn_saveClick(Sender: TObject);
var
s:string;
n:integer;
begin
s:=trim(Edit1.Text);
n:=length(s);
if n=0 then
begin
MessageBox(0,'训练区分不能为空!','训练区分',MB_OK+MB_ICONSTOP);
Edit1.SetFocus;
exit;
end
else
if n>10 then
begin
MessageBox(0,'训练区分不能超过10个汉字!','训练区分',MB_OK+MB_ICONSTOP);
Edit1.SetFocus;
exit;
end;
if appending then
begin
if tbl_zy.Locate('zymc',s,[loCaseInsensitive]) then
begin
MessageBox(0,'训练区分重复!','训练区分',MB_OK+MB_ICONSTOP);
Edit1.SetFocus;
exit;
end;
tbl_zy.Append;
appending:=false;
tbl_zy.FieldByName('zyxh').AsInteger:=xh;
end
else
tbl_zy.Edit;
tbl_zy.FieldByName('zymc').AsString:=trim(edit1.Text);
tbl_zy.Post;
btn_insert.Enabled:=true;
btn_edit.Enabled:=true;
btn_save.Enabled:=false;
btn_cancel.Enabled:=false;
Edit1.SetFocus;
tbl_zyAfterScroll(tbl_zy);
end;
procedure Tfrm_zyhf.btn_cancelClick(Sender: TObject);
begin
tbl_zy.Cancel;
btn_insert.Enabled:=true;
btn_edit.Enabled:=true;
btn_save.Enabled:=false;
btn_cancel.Enabled:=false;
appending:=false;
tbl_zyAfterScroll(tbl_zy);
Edit1.SetFocus;
end;
procedure Tfrm_zyhf.FormClose(Sender: TObject; var Action: TCloseAction);
begin
tbl_zy.Close;
end;
procedure Tfrm_zyhf.tbl_zyAfterScroll(DataSet: TDataSet);
begin
if tbl_zy.RecordCount=0 then
begin
Edit1.Text:='';
exit;
end;
if appending then exit;
Edit1.Text:=tbl_zy.fieldbyname('zymc').AsString;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -