⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitstudentmanage.~pas

📁 这个代码虽然还没有 全部写完
💻 ~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 + -