📄 tsgl1.~pas
字号:
unit tsgl1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, Mask, DB, DBTables, Grids, DBGrids;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
Table1: TTable;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
GroupBox1: TGroupBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
GroupBox2: TGroupBox;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
CheckBox1: TCheckBox;
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 Button6Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
BM:TBookMark; //该变量用于在添回记录时把当前记录位置作为一个书签
AddOrNot:Boolean; //该变量用来表示是添加操作还是修改操作
Procedure ButtonAddEdit() ;
Procedure ButtonOkCancel();
Procedure Cannotedit();
Procedure Canedit() ;
Procedure DisabledButton();
Procedure DispValue();
Procedure ClearValue();
Procedure SetValue();
implementation
{$R *.dfm}
Procedure DispValue(); //在编辑框中显示当前记录的内容
var
hx:boolean;
begin
Form1.Edit1.Text :=Form1.Table1.fieldbyname('书号').asstring;
Form1.Edit2.Text :=Form1.Table1.fieldbyname('书名').asstring;
Form1.Edit3.Text :=Form1.Table1.fieldbyname('作者').asstring;
Form1.Edit4.Text :=Form1.Table1.fieldbyname('出版社').asstring;
Form1.Edit5.Text :=Form1.Table1.fieldbyname('单价').asstring;
Form1.Edit6.Text :=Form1.Table1.fieldbyname('购买册数').asstring;
hx:=form1.Table1.FieldByName('是否核心').AsBoolean ;
IF HX THEN
Form1.CheckBox1.State :=cbChecked
else
Form1.CheckBox1.State :=cbunChecked;
end;
Procedure ClearValue(); //消除在编辑框中显示的内容
begin
Form1.Edit1.Text :='';
Form1.Edit2.Text :='';
Form1.Edit3.Text :='';
Form1.Edit4.Text :='';
Form1.Edit5.Text :='';
Form1.Edit6.Text :='';
Form1.CheckBox1.Checked :=False;
end;
Procedure SetValue() ;
Var
hx:boolean;
begin
with Form1.Table1 do
begin
Fieldbyname('书号').AsString :=Form1.Edit1.Text ;
Fieldbyname('书名').AsString :=Form1.Edit2.Text ;
Fieldbyname('作者').AsString :=Form1.Edit3.Text ;
Fieldbyname('出版社').AsString :=Form1.Edit4.Text ;
Fieldbyname('单价').AsString :=Form1.Edit5.Text ;
Fieldbyname('购买册数').AsString :=Form1.Edit6.Text ;
If Form1.CheckBox1.State =cbChecked then
hx:=True
else
hx:=False;
FieldByName('是否核心').AsBoolean :=hx;
end;
end;
Procedure ButtonAddEdit(); //用来设置执行添加或修改操作时各按钮的状态
begin
Form1.GroupBox1.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.GroupBox1.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.Edit1.readOnly:=True;
Form1.Edit2.readOnly:=True;
Form1.Edit3.readOnly:=True;
Form1.Edit4.readOnly:=True;
Form1.Edit5.readOnly:=True;
Form1.Edit6.readOnly:=True;
Form1.CheckBox1.Enabled :=False;
end;
Procedure Canedit();//用来设置各输入的数据控件可以输入
begin
Form1.Edit1.readOnly:=False;
Form1.Edit2.readOnly:=False;
Form1.Edit3.readOnly:=False;
Form1.Edit4.readOnly:=False;
Form1.Edit5.readOnly:=False;
Form1.Edit6.readOnly:=False;
Form1.CheckBox1.Enabled :=True;
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
Cdir:string;
begin
getdir(0,Cdir);
table1.DatabaseName:=Cdir; //设置Table1的Databasename为当前目录
table1.Active :=True; //打开Table1
Cannotedit; //设置可输入组件为只读
if table1.RecordCount =0 then //如果数据库表为空
begin
disabledButton;
Button6.Enabled :=True; //只有添加按钮可用
end
else
ButtonOkCancel;
// Table1.IndexName :='BOOKNAME'; //设置查询用的索引名
Dispvalue;
end;
procedure TForm1.Button1Click(Sender: TObject); //移到首记录按钮
begin
Table1.First ;
Button1.Enabled :=False;
Button2.Enabled :=False;
Button3.Enabled :=True;
Button4.Enabled:=True;
Dispvalue();
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;
dispValue();
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;
Dispvalue;
end;
procedure TForm1.Button4Click(Sender: TObject); //末记录
begin
Table1.Last ;
Button1.Enabled :=True;
Button2.Enabled :=True;
Button3.Enabled :=False;
Button4.Enabled:=False;
dispvalue;
end;
procedure TForm1.Button5Click(Sender: TObject);//退出
begin
table1.Close ;
Application.Terminate ;
end;
procedure TForm1.Button6Click(Sender: TObject);//增加
begin
ClearValue;
BM:=table1.GetBookmark ; //记下当前记录位置
Canedit; //允许输入
ButtonAddEdit; //设置按钮状态
AddOrNot:=True; //是增加操作
Table1.Append ;//增加记录
end;
procedure TForm1.Button11Click(Sender: TObject);//取消
begin
Table1.Cancel; //执行取消操作
If AddOrNot then //如果刚才执行的是增加操作
table1.GotoBookmark(Bm); //把指针移到原来的位置
Cannotedit; //不允许输入
ButtonOkCancel; //设置按钮的状态
dispvalue;
end;
procedure TForm1.Button10Click(Sender: TObject);//确定
begin
If (length(trim(Edit1.text))=0) then //编号为空
begin
ShowMessage('必须输入书号');
edit1.SetFocus ;
end
else
begin
setvalue;
table1.Post ;
end;
ButtonOkCancel;
end;
procedure TForm1.Button7Click(Sender: TObject);//修改
begin
AddOrNot:=False; // 不是增加操作
CanEdit;
ButtonAddEdit;
table1.Edit ; //修改记录
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
else
DispValue;
end;
procedure TForm1.Button9Click(Sender: TObject); //查询
var
SM: string;
begin
SM:=trim(inputbox('输入书名','请输入书名','')); //输入要查询的人的姓名
with table1 do
begin
TABLE1.IndexFieldNames :='书名';
if FindKey([SM]) then //如果找到
ShowMessage('查到了相应记录')
else
ShowMessage('无符合条件的记录');
end ;
DispValue;
end;
procedure TForm1.DBGrid1CellClick(Column: TColumn); //显示当前记录
begin
dispvalue;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -