utermedit.~pas

来自「一.录入学生信息(预计有81个学生」· ~PAS 代码 · 共 144 行

~PAS
144
字号
unit uTermEdit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, DB, ADODB;

type
  TfrmTermEdit = class(TForm)
    Panel1: TPanel;
    cmdEnsure: TButton;
    cmdCancel: TButton;
    Label1: TLabel;
    Label2: TLabel;
    EditCode: TEdit;
    EditName: TEdit;
    dsQuery: TADODataSet;
    Label3: TLabel;
    Function ReadyData():Boolean;
    Function SaveData():Boolean;

    procedure cmdCancelClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure cmdEnsureClick(Sender: TObject);
    procedure EditCodeKeyPress(Sender: TObject; var Key: Char);
  private
    SelID:Integer;
    IsCancel:Boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

Function ShowTermEdit(SelID:Integer):Boolean;

implementation

uses uDM,uPub;

{$R *.dfm}

Function ShowTermEdit(SelID:Integer):Boolean;
var
  frmTermEdit: TfrmTermEdit;
begin
  Result:=False;
  frmTermEdit:=TfrmTermEdit.Create(nil);
  frmTermEdit.SelID:=SelID;
  if Not frmTermEdit.ReadyData then
  begin
    frmTermEdit.Free;
    Exit;
  end;
  frmTermEdit.ShowModal;
  Result:=Not frmTermEdit.IsCancel;
  frmTermEdit.Free;
end;

Function TfrmTermEdit.ReadyData():Boolean;
var TmpSQL:String;
begin
  Result:=False;
  TmpSQL:='Select * from TTerm Where ID='+IntToStr(SelID);
  dsQuery.Close;
  dsQuery.CommandText:=TmpSQL;
  Try
    dsQuery.Open;
  Except
    ShowMessage('读取本地数据文件发生错误!');
    Exit;
  end;
  if Not dsQuery.IsEmpty then
  begin
    dsQuery.Edit;
    EditCode.Text:=dsQuery.fieldByName('TermCode').AsString;
    EditName.Text:=dsQuery.fieldByName('TermName').AsString;
  end
  else
  begin
    dsQuery.Append;
    dsQuery.Edit;
  end;
  Result:=True;
end;

Function TfrmTermEdit.SaveData():Boolean;
begin
  Result:=False;
  if EditCode.Text='' then
  begin
    ShowMessage('学期编号尚未输入!');
    EditCode.SetFocus;
    Exit;
  end;
  if EditName.Text='' then
  begin
    ShowMessage('学期名称尚未输入!');
    EditName.SetFocus;
    Exit;
  end;
  dsQuery.FieldByName('TermCode').AsString:=EditCode.Text;
  dsQuery.FieldByName('TermName').AsString:=EditName.Text;
  Try
    dsQuery.Post;
  Except
    ShowMessage('存储数据发生错误,可能您输入的学期编号已经被使用!');
    Exit;
  End;
  Result:=True;
end;

procedure TfrmTermEdit.cmdCancelClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmTermEdit.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  nextfocus(self.ActiveControl,Key,Shift);
end;

procedure TfrmTermEdit.FormCreate(Sender: TObject);
begin
  IsCancel:=True;
end;

procedure TfrmTermEdit.cmdEnsureClick(Sender: TObject);
begin
  if Not SaveData then Exit;
  IsCancel:=False;
  Close;
end;

procedure TfrmTermEdit.EditCodeKeyPress(Sender: TObject; var Key: Char);
begin
  if Not (Key in ['0'..'9',#8]) then Key:=#0;
end;

end.

⌨️ 快捷键说明

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