📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, StdCtrls, Mask, DB, DBTables, Grids, DBGrids;
type
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit4: TDBEdit;
DBComboBox1: TDBComboBox;
DBEdit9: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
// procedure DBGrid1CellClick(Column: TColumn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
Var
BM:TBookMark; //该变量用于在添加记录时把当前记录位置作为一个书签
AddOrNot:Boolean; //该变量用来表示是添加操作还是修改操作,True表示添加
{$R *.dfm}
Procedure ButtonAddEdit(); //用来设置执行添加或修改操作时各按钮的状态
begin
Form1.Button1.Enabled :=False; Form1.Button2.enabled:=False;
Form1.Button3.Enabled :=False; Form1.Button4.Enabled :=False;
Form1.Button5.Enabled :=False; Form1.Button6.Enabled :=False;
Form1.Button7.Enabled :=False; Form1.Button8.Enabled :=False;
Form1.Button9.Enabled :=False;
Form1.Button10.Enabled :=True; // 确定按钮可以使用
Form1.Button11.Enabled :=True; //取消按钮可以使用
end;
Procedure ButtonOkCancel();//用来设置执行取消或确定操作时各按钮的状态
begin
Form1.Button1.Enabled :=True; Form1.Button2.enabled:=True;
Form1.Button3.Enabled :=True; Form1.Button4.Enabled :=True;
Form1.Button5.Enabled :=True; Form1.Button6.Enabled :=True;
Form1.Button7.Enabled :=True; Form1.Button8.Enabled :=True;
Form1.Button9.Enabled :=True;
Form1.Button10.Enabled :=False; // 确定按钮不可以使用
Form1.Button11.Enabled :=False; //取消按钮不可以使用
end;
Procedure Cannotedit();//用来设置各输入的数据控制组件不可输入
begin
Form1.dbEdit1.readOnly:=True; Form1.dbEdit2.readOnly:=True;
Form1.dbComboBox1.ReadOnly :=True; Form1.dbEdit4.readOnly:=True;
Form1.dbEdit5.readOnly:=True; Form1.dbEdit6.readOnly:=True;
Form1.dbEdit7.readOnly:=True; Form1.dbEdit8.readOnly:=True;
end;
Procedure Canedit();//用来设置各输入的数据控制组件可以输入
begin
Form1.dbEdit1.readOnly:=False; Form1.dbEdit2.readOnly:=False;
Form1.dbComboBox1.ReadOnly :=False; Form1.dbEdit4.readOnly:=False;
Form1.dbEdit5.readOnly:=False; Form1.dbEdit6.readOnly:=False;
Form1.dbEdit7.readOnly:=False; Form1.dbEdit8.readOnly:=False;
end;
Procedure DisabledButton(); //使所有的按钮均不可用
begin
Form1.button1.enabled:=False; Form1.button2.enabled:=False;
Form1.button3.enabled:=False; Form1.button4.enabled:=False;
Form1.button5.enabled:=False; Form1.button6.enabled:=False;
Form1.button7.enabled:=False; Form1.button8.enabled:=False;
Form1.button9.enabled:=False; Form1.button10.enabled:=False;
Form1.button11.enabled:=False;
end;
procedure TForm1.FormCreate(Sender: TObject);
Var
Curdir:string;
begin
getdir(0,Curdir);
table1.DatabaseName:=Curdir; //设置Table1的Databasename为当前目录
table1.Active :=True; //打开Table1
Cannotedit; //设置可输入组件为只读
if table1.RecordCount =0 then //如果数据库表为空
begin
disabledButton;
Button6.Enabled :=True; //只有添加按钮可用
end
else
ButtonOkCancel;
Table1.IndexName :='XM'; //设置查询用的索引名
end;
procedure TForm1.Button1Click(Sender: TObject); //首记录
begin
Table1.First ;
Button1.Enabled :=False; Button2.Enabled :=False;
Button3.Enabled :=True; Button4.Enabled:=True;
end;
procedure TForm1.Button2Click(Sender: TObject); //前移
begin
Table1.Prior ;
button3.Enabled :=True; Button4.Enabled :=True;
if table1.Bof then //判断是否到达文件头
begin
table1.First ;
button1.Enabled :=False; Button2.Enabled :=False;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);//后移
begin
table1.Next ;
Button1.Enabled :=True; Button2.Enabled :=True;
if table1.Eof then //判断是否到达文件尾
begin
Button3.Enabled :=False; Button4.Enabled :=False;
table1.Last ;
end;
end;
procedure TForm1.Button4Click(Sender: TObject); //末记录
begin
Table1.Last ;
Button1.Enabled :=True; Button2.Enabled :=True;
Button3.Enabled :=False; Button4.Enabled:=False;
end;
procedure TForm1.Button5Click(Sender: TObject); //退出
begin
table1.Close ;//关闭表
Application.Terminate ;//结束程序运行
end;
procedure TForm1.Button6Click(Sender: TObject); //添加
begin
BM:=table1.GetBookmark ; //记下当前记录位置
Canedit; //允许输入
Table1.Append ; //增加记录
ButtonAddEdit; //设置按钮状态
AddOrNot:=True; //是增加操作
end;
procedure TForm1.Button7Click(Sender: TObject); //修改
begin
AddOrNot:=False; // 不是添加操作
table1.Edit ; //修改
CanEdit; //让所有的数据控制组件可以使用
ButtonAddEdit;
end;
procedure TForm1.Button8Click(Sender: TObject); //删除
begin
if Application.MessageBox('真的要删除吗?','删除提示框',MB_OKCANCEL)=IDOK THEN
Table1.Delete ;
if table1.RecordCount =0 then //如果所有的记录均被删除
begin
ShowMessage('已无记录'); //显示提示信息
DisabledButton; //让所有按钮均不可用
Button6.Enabled :=True;//再让添加按钮可用,只能执行添加操作
end;
end;
procedure TForm1.Button9Click(Sender: TObject); //按姓名查询
var
xm: string;
begin
xm:=trim(inputbox('输入姓名','请输入姓名','')); //输入要查询的人的姓名
with table1 do
begin
setkey; //设置查询状态
FieldByName('姓名').AsString :=xm;//设置要查询的姓名
if not GotoKey then //如果没有找到
ShowMessage('无符合条件的记录');
end
end;
procedure TForm1.Button10Click(Sender: TObject); //确定操作
begin
If (length(trim(dbEdit1.text))=0) then //如果"好友号"为空
begin
ShowMessage('必须输入好友号');
dbedit1.SetFocus ;
end
else
begin
table1.Post ; //存入到数据库中
CannotEdit;
ButtonOkCancel;
end;
end;
procedure TForm1.Button11Click(Sender: TObject); //取消操作
begin
Table1.Cancel; //执行取消操作
If AddOrNot then //如果刚才执行的是增加操作
table1.GotoBookmark(Bm); //把指针移到原来的位置
Cannotedit; //不允许输入
ButtonOkCancel; //设置按钮的状态
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -