uhonoursstdedit.pas

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

PAS
142
字号
unit uHonoursStdEdit;

interface

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

type
  TfrmHonoursStdEdit = 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 ShowonoursStdEdit(SelID:Integer):Boolean;

implementation

uses uDM,uPub;

{$R *.dfm}

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

Function TfrmHonoursStdEdit.ReadyData():Boolean;
var TmpSQL:String;
begin
  Result:=False;
  TmpSQL:='Select THonoursStd.*,TSubject.SubjName from THonoursStd,TSubject Where'+
    ' THonoursStd.SubjectCode=TSubject.SubjCode And '+
    ' THonoursStd.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 TfrmHonoursStdEdit.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 TfrmHonoursStdEdit.cmdCancelClick(Sender: TObject);
begin
  Close;
end;

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

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

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

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