📄 unitstudentmanage.~pas
字号:
unit UnitStudentManage;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
DB, ADODB, Grids, DBGrids, StdCtrls, QDialogs, DBTables, Mask,
DBCtrls;
type
TFormStudentManage = class(TForm)
ButtonInsert1: TButton;
ButtonInsert2: TButton;
ButtonDelete: TButton;
ButtonUpdate: TButton;
ButtonLock: TButton;
ButtonUnlock: TButton;
ButtonClose: TButton;
ButtonFirst: TButton;
ButtonLast: TButton;
ButtonNext: TButton;
ButtonPrev: TButton;
EditID: TEdit;
EditName: TEdit;
ComboBoxSex: TComboBox;
EditAddress: TEdit;
EditTelephone: TEdit;
EditComment: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Table1: TTable;
Table1ID: TSmallintField;
Table1Name: TStringField;
Table1Sex: TStringField;
Table1Birthday: TDateTimeField;
Table1Address: TStringField;
Table1Telephone: TStringField;
Table1ClassID: TIntegerField;
Table1Comment: TStringField;
Database1: TDatabase;
MaskEditBirthday: TMaskEdit;
Table2: TTable;
DataSource2: TDataSource;
Label9: TLabel;
EditClassName: TEdit;
ComboBoxClassID: TComboBox;
procedure FormResize(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ButtonFirstClick(Sender: TObject);
procedure ButtonNextClick(Sender: TObject);
procedure ButtonPrevClick(Sender: TObject);
procedure ButtonLastClick(Sender: TObject);
procedure ButtonInsert1Click(Sender: TObject);
procedure ButtonInsert2Click(Sender: TObject);
procedure ButtonDeleteClick(Sender: TObject);
procedure ButtonUpdateClick(Sender: TObject);
procedure ButtonLockClick(Sender: TObject);
procedure ButtonUnlockClick(Sender: TObject);
procedure ButtonCloseClick(Sender: TObject);
procedure EditIDKeyPress(Sender: TObject; var Key: Char);
procedure ComboBoxClassIDChange(Sender: TObject);
procedure ComboBoxClassIDSelect(Sender: TObject);
procedure ComboBoxClassIDKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormStudentManage: TFormStudentManage;
implementation
{$R *.dfm}
//响应窗口显示事件
procedure TFormStudentManage.FormShow(Sender: TObject);
begin
//调用FormResize()函数
FormResize(Sender);
//打开Table1(可以通过设置Table的Active属性为true来实现)
Table1.Open();
//初始化班级编号复合框
While(Table2.EOF)do
begin
ComboBoxClassID.Items.Add(Table2.FieldValues['ID']);
Table2.Next();
end;
end;
//响应窗口大小改变事件
procedure TFormStudentManage.FormResize(Sender: TObject);
begin
//设置表单宽度和高度
DBGrid1.Width :=FormStudentManage.ClientWidth-2*DBGrid1.Left-80;
DBGrid1.Height :=FormStudentManage.ClientHeight-DBGrid1.Top-50;
//设置底部按钮的位置
ButtonFirst.Top :=DBGrid1.Top+DBGrid1.Height+15;
ButtonNext.Top :=DBGrid1.Top+DBGrid1.Height+15;
ButtonPrev.Top :=DBGrid1.Top+DBGrid1.Height+15;
ButtonLast.Top :=DBGrid1.Top+DBGrid1.Height+15;
//设置右边按钮的位置
ButtonInsert1.Left:=DBGrid1.Left+DBGrid1.Width+15;
ButtonInsert2.Left:=DBGrid1.Left+DBGrid1.Width+15;
ButtonDelete.Left :=DBGrid1.Left+DBGrid1.Width+15;
ButtonUpdate.Left :=DBGrid1.Left+DBGrid1.Width+15;
ButtonLock.Left :=DBGrid1.Left+DBGrid1.Width+15;
ButtonUnlock.Left :=DBGrid1.Left+DBGrid1.Width+15;
ButtonClose.Left :=DBGrid1.Left+DBGrid1.Width+15;
end;
//响应窗口关闭事件
procedure TFormStudentManage.FormClose(Sender: TObject;
var Action: TCloseAction);
var
Result: integer;
begin
//显示确认提示框
Result:= MessageBox(Handle,'你是否需要保存数据修改?','提示', MB_YESNO or MB_ICONQUESTION or MB_DEFBUTTON1);
//如果单击Yes
if result = IDYES then
//更新表(必须保证Table1的CachedUpdates属性为True)
Table1.ApplyUpdates();
//关闭表1
Table1.Close();
//关闭子窗口
Action:=caFree;
end;
//响应按钮'首记录'单击事件
procedure TFormStudentManage.ButtonFirstClick(Sender: TObject);
begin
//移动到首记录
Table1.First();
end;
//响应按钮'下一记录'单击事件
procedure TFormStudentManage.ButtonNextClick(Sender: TObject);
begin
//移动到下一记录
Table1.Next();
end;
//响应按钮'上一记录'单击事件
procedure TFormStudentManage.ButtonPrevClick(Sender: TObject);
begin
//移动到上一记录
Table1.Prior();
end;
//响应按钮'尾记录'单击事件
procedure TFormStudentManage.ButtonLastClick(Sender: TObject);
begin
//移动到尾记录
Table1.Last();
end;
//响应按钮'插入'单击事件
procedure TFormStudentManage.ButtonInsert1Click(Sender: TObject);
begin
if(EditID.Text<>'')then
begin
//追加一条记录
Table1.Append();
//设置各个字段值
Table1.FieldValues['ID'] :=StrToInt(EditID.text);
Table1.FieldValues['Name'] :=EditName.text;
Table1.FieldValues['Sex'] :=ComboBoxSex.text;
Table1.FieldValues['Birthday'] :=MaskEditBirthday.text;
Table1.FieldValues['ClassID'] :=ComboBoxClassID.text;
Table1.FieldValues['Telephone']:=EditTelephone.text;
Table1.FieldValues['Address'] :=EditAddress.text;
Table1.FieldValues['Comment'] :=EditComment.text;
end
else
MessageBox(FormStudentManage.Handle,'请输入学号。','提示',MB_OK OR MB_ICONINFORMATION);
end;
//响应按钮'插入'单击事件
procedure TFormStudentManage.ButtonInsert2Click(Sender: TObject);
begin
//在当前位置插入新记录(也可以通过Append()在尾部追加新记录)
Table1.Append();
end;
//响应按钮'删除'单击事件
procedure TFormStudentManage.ButtonDeleteClick(Sender: TObject);
var
Result: integer;
Name : string;
begin
//获取删除行的学号
Name:=Table1.FieldValues['Name'];
//显示确认提示框(添加'QDialogs'单元)
Result:= MessageDlg('你是否需要删除['+Name+']?', mtConfirmation, [mbYes, mbNo], 0, mbYes);
//如果单击OK
if result = 3 then
//删除记录
Table1.Delete();
end;
//响应按钮'保存'单击事件
procedure TFormStudentManage.ButtonUpdateClick(Sender: TObject);
begin
//更新表
Table1.ApplyUpdates();
end;
//响应按钮'锁定'单击事件
procedure TFormStudentManage.ButtonLockClick(Sender: TObject);
begin
//设置为只读状态
DBGrid1.ReadOnly:=true;
end;
//响应按钮'解锁'单击事件
procedure TFormStudentManage.ButtonUnlockClick(Sender: TObject);
begin
//设置为可编辑状态
DBGrid1.ReadOnly:=false;
end;
//响应按钮'关闭'单击事件
procedure TFormStudentManage.ButtonCloseClick(Sender: TObject);
begin
//关闭窗口
FormStudentManage.Close();
end;
//响应'学号'编辑框按键事件
procedure TFormStudentManage.EditIDKeyPress(Sender: TObject;
var Key: Char);
begin
if(Key>'9') or (Key<'0') and (Key<>#8)then
Key:=#0;
end;
//响应'班级编号'复合框按键事件
procedure TFormStudentManage.ComboBoxClassIDKeyPress(Sender: TObject;
var Key: Char);
begin
if(Key>'9') or (Key<'0') and (Key<>#8)then
Key:=#0;
end;
//响应班级编号复合框编辑事件
procedure TFormStudentManage.ComboBoxClassIDChange(Sender: TObject);
begin
//查找是否存在该班级
if Table2.FindKey([StrToInt(ComboBoxClassID.text)])=false then
EditClassName.Text:='该班级不存在'
else
EditClassName.Text:=Table2.FieldValues['Name'];
end;
//响应班级编号复合框选择事件
procedure TFormStudentManage.ComboBoxClassIDSelect(Sender: TObject);
begin
//查找是否存在该班级
if Table2.FindKey([StrToInt(ComboBoxClassID.text)])=false then
EditClassName.Text:='该班级不存在'
else
EditClassName.Text:=Table2.FieldValues['Name'];
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -