uguadeedit.~pas

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

~PAS
142
字号
unit uGuadeEdit;

interface

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

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

Function ShowGuadeEdit(SelID:Integer):Boolean;

implementation

uses uDM,uPub;

{$R *.dfm}
Function ShowGuadeEdit(SelID:Integer):Boolean;
var
  frmGuadeEdit: TfrmGuadeEdit;
begin
  Result:=False;
  frmGuadeEdit:=TfrmGuadeEdit.Create(nil);
  frmGuadeEdit.SelID:=SelID;
  if Not frmGuadeEdit.ReadyData then
  begin
    frmGuadeEdit.Free;
    Exit;
  end;
  frmGuadeEdit.ShowModal;
  Result:=Not frmGuadeEdit.IsCancel;
  frmGuadeEdit.Free;
end;

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

Function TfrmGuadeEdit.SaveData():Boolean;
begin
  Result:=False;
  if EditScore.Text='' then
  begin
    ShowMessage('评优分数尚未输入!');
    EditScore.SetFocus;
    Exit;
  end;
  dsQuery.FieldByName('Score').AsString:=EditScore.Text;
  Try
    dsQuery.Post;
  Except
    ShowMessage('存储数据发生错误!');
    Exit;
  End;
  Result:=True;
end;



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

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

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

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

procedure TfrmGuadeEdit.EditScoreKeyPress(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 + -
显示快捷键?