📄 unitstudentmanage.pas
字号:
unit UnitStudentManage;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls, Mask;
type
TFormStudentManage = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ButtonFirst: TButton;
ButtonNext: TButton;
ButtonPrev: TButton;
ButtonLast: TButton;
ButtonInsert: TButton;
ButtonDelete: TButton;
ButtonUpdate: TButton;
ButtonLock: TButton;
ButtonUnlock: TButton;
ButtonClose: TButton;
LabelID: TLabel;
LabelName: TLabel;
LabelSex: TLabel;
LabelB: TLabel;
LabelPhone: TLabel;
LabelAddress: TLabel;
LabelC: TLabel;
LabelClassNumber: TLabel;
LabelClassName: TLabel;
EditID: TEdit;
EditName: TEdit;
EditPhone: TEdit;
EditAddress: TEdit;
EditComment: TEdit;
EditClassName: TEdit;
ComboBoxSex: TComboBox;
MaskEditBirthday: TMaskEdit;
ComboBoxClassID: TComboBox;
ButtonAppend: TButton;
Table2: TTable;
Table1: TTable;
Table1ID: TIntegerField;
Table1Name: TStringField;
Table1Sex: TStringField;
Table1Birthday: TDateTimeField;
Table1Address: TStringField;
Table1Telephone: TStringField;
Table1ClassID: TIntegerField;
Table1Picture: TBlobField;
Table1Comment: TStringField;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormResize(Sender: TObject);
procedure ButtonInsertClick(Sender: TObject);
procedure ButtonUpdateClick(Sender: TObject);
procedure ButtonDeleteClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ButtonLockClick(Sender: TObject);
procedure ButtonUnlockClick(Sender: TObject);
procedure ButtonCloseClick(Sender: TObject);
procedure ButtonFirstClick(Sender: TObject);
procedure ButtonNextClick(Sender: TObject);
procedure ButtonPrevClick(Sender: TObject);
procedure ButtonLastClick(Sender: TObject);
procedure ButtonAppendClick(Sender: TObject);
procedure EditIDKeyPress(Sender: TObject; var Key: Char);
procedure select(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormStudentManage: TFormStudentManage;
implementation
uses UnitMain,QDialogs;
{$R *.dfm}
//响应学生管理窗口关闭事件
procedure TFormStudentManage.FormClose(Sender: TObject;
var Action: TCloseAction);
var result:integer;
begin
//输出提示信息
result:=MessageDlg('你是否需要保存?',mtConfirmation
,[mbYes,mbNo],0,mbYes);
if result=3 then
//保存数据库的修改
Table1.ApplyUpdates();
Action:=caFree;
FormMain.MenuStudentManage.checked:=false;
//工具条下压
FormMain.ToolButtonStudentManage.Down:=false;
end;
//响应窗口改变大小事件
procedure TFormStudentManage.FormResize(Sender: TObject);
begin
//改变Dbgride的大小
DBGrid1.Width :=FormStudentManage.Width-150;
DBGrid1.height :=FormStudentManage.height-200;
//设置下面按钮位置
ButtonFirst.Top:=DBGrid1.height+130;
ButtonNext.Top:=DBGrid1.height+130;
ButtonPrev.Top:=DBGrid1.height+130;
ButtonLast.Top:=DBGrid1.height+130;
//设置右边按钮
ButtonInsert.Left:=DBGrid1.width+30;
ButtonDelete.Left:=DBGrid1.width+30;
ButtonUpdate.Left:=DBGrid1.width+30;
ButtonLock.Left:=DBGrid1.width+30;
ButtonUnlock.Left:=DBGrid1.width+30;
ButtonClose.Left:=DBGrid1.width+30;
end;
//响应插入按钮点击事件
procedure TFormStudentManage.ButtonInsertClick(Sender: TObject);
begin
//插入表单
Table1.Insert();
end;
//响应保存按钮事件
procedure TFormStudentManage.ButtonUpdateClick(Sender: TObject);
begin
//保存数据库的修改
Table1.ApplyUpdates();
end;
//响应删除按钮事件
procedure TFormStudentManage.ButtonDeleteClick(Sender: TObject);
begin
//删除相应的行
Table1.Delete();
end;
//响应窗口显示事件
procedure TFormStudentManage.FormShow(Sender: TObject);
begin
FormResize(Sender);
//禁用锁定按钮
ButtonLock.Enabled:=false;
//初始化班级下拉框
Table2.Open();//table2.Active:=true;
//遍历数据库
while(Table2.Eof=false) do
begin
ComboBoxClassID.Items.Add(Table2.FieldValues['id']);
Table2.Next();
end;
Table2.Close();
//设置默认值
//ComboBoxClassID.ItemIndex:=0;
end;
//响应锁定按钮事件
procedure TFormStudentManage.ButtonLockClick(Sender: TObject);
begin
DBGrid1.Readonly:=true;
//禁用相应按钮
ButtonLock.Enabled:=false;
ButtonInsert.Enabled :=false;
ButtonDelete.Enabled :=false;
ButtonUpdate.Enabled :=false;
ButtonAppend.Enabled :=false;
//启用解锁按钮
ButtonUnLock.Enabled:=true;
end;
//响应解锁按钮事件
procedure TFormStudentManage.ButtonUnlockClick(Sender: TObject);
begin
DBGrid1.Readonly:=false;
//启用相应按钮
ButtonLock.Enabled:=true;
ButtonInsert.Enabled :=true;
ButtonDelete.Enabled :=true;
ButtonUpdate.Enabled :=true;
ButtonAppend.Enabled :=true;
//禁用解锁按钮
ButtonUnLock.Enabled:=false;
end;
//响应关闭按钮事件
procedure TFormStudentManage.ButtonCloseClick(Sender: TObject);
begin
//响应窗口关闭事件
FormStudentManage.Close;
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.ButtonAppendClick(Sender: TObject);
begin
if(ComboBoxClassID.Text<>'') and (EditID.Text<>'')then
begin
//往表中追加一行
Table1.Append();
//设置各个字段
Table1.FieldValues['ID']:=EditID.Text;
Table1.FieldValues['Name']:=EditName.Text;
Table1.FieldValues['Sex']:=ComboBoxSex.Text;
Table1.FieldValues['Birthday']:=MaskEditBirthday.Text;
Table1.FieldValues['Address']:=EditAddress.Text;
Table1.FieldValues['Telephone']:=EditPhone.Text;
Table1.FieldValues['Comment']:=EditComment.Text;
Table1.FieldValues['ClassID']:=StrTOInt(ComboBoxClassID.Text);
end
else
MessageDlg('学号和班级编号不能为空',mtInformation
,[mbOK],0,mbOK);
end;
procedure TFormStudentManage.EditIDKeyPress(Sender: TObject;
var Key: Char);
begin
//判断输入的是否为数字且控制长度小于3
if(key>='0')and(key<='9')and (length(EditID.Text)<3)or(key=#8)then
key:=key
else
key:=#0;
end;
//响应班级下拉框的选择时间
procedure TFormStudentManage.select(Sender: TObject);
begin
//打开Table2
Table2.Open();
//遍历数据库
while(Table2.Eof=false) do
begin
if(Table2.FieldValues['id']=ComboBoxClassID.Text)then
begin
EditClassName.Text:=Table2.FieldValues['name'];
break;
end;
Table2.Next();
end;
Table2.Close();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -