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

📄 u_zy.pas

📁 试卷管理系统
💻 PAS
字号:
unit U_zy;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids, ComCtrls;

type
  Tfrm_zyhf = class(TForm)
    DBGrid1: TDBGrid;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    btn_insert: TButton;
    btn_delete: TButton;
    btn_edit: TButton;
    btn_save: TButton;
    btn_cancel: TButton;
    tbl_zy: TTable;
    DataSource1: TDataSource;
    procedure btn_insertClick(Sender: TObject);
    procedure btn_deleteClick(Sender: TObject);
    procedure btn_editClick(Sender: TObject);
    procedure btn_saveClick(Sender: TObject);
    procedure btn_cancelClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure tbl_zyAfterScroll(DataSet: TDataSet);
  private
    xh:integer;
    appending:boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frm_zyhf: Tfrm_zyhf;

implementation

{$R *.dfm}

procedure Tfrm_zyhf.btn_insertClick(Sender: TObject);
var
  n,max,i:integer;
begin
  tbl_zy.DisableControls;

  n:=tbl_zy.RecordCount;
  max:=0;
  tbl_zy.First;
  while not tbl_zy.Eof do
  begin
    if max<tbl_zy.fieldbyname('zyxh').AsInteger then max:=tbl_zy.fieldbyname('zyxh').AsInteger;
    tbl_zy.Next;
  end;

  xh:=1;
  if n<max then
  begin
    for i:=1 to max do
    begin
      if not tbl_zy.Locate('zyxh',i,[]) then
      begin
        xh:=i;
        break;
      end;
    end;
  end
  else
    xh:=n+1;

  tbl_zy.Insert;

  tbl_zy.EnableControls;

  btn_insert.Enabled:=false;

  btn_save.Enabled:=true;
  btn_cancel.Enabled:=true;

  appending:=true;

  Edit1.SetFocus;
end;

procedure Tfrm_zyhf.btn_deleteClick(Sender: TObject);
begin
  if tbl_zy.RecordCount=0 then exit;
  tbl_zy.Delete;
end;

procedure Tfrm_zyhf.btn_editClick(Sender: TObject);
begin
  if tbl_zy.RecordCount=0 then exit;

  btn_edit.Enabled:=false;

  btn_save.Enabled:=true;
  btn_cancel.Enabled:=true;

  tbl_zy.Edit;
  Edit1.SetFocus;
end;

procedure Tfrm_zyhf.btn_saveClick(Sender: TObject);
var
  s:string;
  n:integer;
begin
  s:=trim(Edit1.Text);
  n:=length(s);
  if n=0 then
  begin
    MessageBox(0,'训练区分不能为空!','训练区分',MB_OK+MB_ICONSTOP);
    Edit1.SetFocus;
    exit;
  end
  else
  if n>10 then
  begin
    MessageBox(0,'训练区分不能超过10个汉字!','训练区分',MB_OK+MB_ICONSTOP);
    Edit1.SetFocus;
    exit;
  end;

  if appending then
  begin
     if tbl_zy.Locate('zymc',s,[loCaseInsensitive]) then
     begin
       MessageBox(0,'训练区分重复!','训练区分',MB_OK+MB_ICONSTOP);
       Edit1.SetFocus;
       exit;
     end;
     tbl_zy.Append;
     appending:=false;
     tbl_zy.FieldByName('zyxh').AsInteger:=xh;
  end
  else
     tbl_zy.Edit;

  tbl_zy.FieldByName('zymc').AsString:=trim(edit1.Text);
  tbl_zy.Post;

  btn_insert.Enabled:=true;
  btn_edit.Enabled:=true;
  btn_save.Enabled:=false;
  btn_cancel.Enabled:=false;

  Edit1.SetFocus;

  tbl_zyAfterScroll(tbl_zy);
end;

procedure Tfrm_zyhf.btn_cancelClick(Sender: TObject);
begin
  tbl_zy.Cancel;
  btn_insert.Enabled:=true;
  btn_edit.Enabled:=true; 
  btn_save.Enabled:=false;
  btn_cancel.Enabled:=false;
  appending:=false;
  tbl_zyAfterScroll(tbl_zy);
  Edit1.SetFocus;
end;

procedure Tfrm_zyhf.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  tbl_zy.Close;
end;

procedure Tfrm_zyhf.tbl_zyAfterScroll(DataSet: TDataSet);
begin
  if tbl_zy.RecordCount=0 then
  begin
    Edit1.Text:='';
    exit;
  end;
  if appending then exit;
  Edit1.Text:=tbl_zy.fieldbyname('zymc').AsString;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -