usubjectedit.pas

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

PAS
139
字号
unit uSubjectEdit;

interface

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

type
  TfrmSubjectEdit = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Panel1: TPanel;
    cmdEnsure: TButton;
    cmdCancel: TButton;
    EditCode: TEdit;
    EditName: TEdit;
    dsQuery: TADODataSet;
    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);
  private
    SelID:Integer;
    IsCancel:Boolean;
  
    { Private declarations }
  public
    { Public declarations }
  end;

Function ShowSubjectEdit(SelID:Integer):Boolean;

implementation

uses uPub,uDM;

{$R *.dfm}


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

Function TfrmSubjectEdit.ReadyData():Boolean;
var TmpSQL:String;
begin
  Result:=False;
  TmpSQL:='Select * from TSubject 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('SubjCode').AsString;
    EditName.Text:=dsQuery.fieldByName('SubjName').AsString;
  end
  else
  begin
    dsQuery.Append;
    dsQuery.Edit;
  end;
  Result:=True;
end;

Function TfrmSubjectEdit.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('SubjCode').AsString:=EditCode.Text;
  dsQuery.FieldByName('SubjName').AsString:=EditName.Text;
  Try
    dsQuery.Post;
  Except
    ShowMessage('存储数据发生错误,可能您输入的科目编号已经被使用!');
    Exit;
  End;
  Result:=True;
end;


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

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

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

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

end.

⌨️ 快捷键说明

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