objaccessu.pas

来自「source for card readers」· PAS 代码 · 共 85 行

PAS
85
字号
unit ObjAccessU;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
  Controls, Forms, Dialogs, StdCtrls, ClientU;

type
  TfrmAccessObject = class(TForm)
    lblAccNo: TLabel;
    lblName: TLabel;
    btnCreate: TButton;
    btnFree: TButton;
    btnShow: TButton;
    gpbCName: TGroupBox;
    edtCName: TEdit;
    gpbAccNo: TGroupBox;
    edtAccNo: TEdit;
    procedure btnCreateClick(Sender: TObject); 
    procedure btnFreeClick(Sender: TObject);
    procedure btnShowClick(Sender: TObject);
  private
    NewClient: TClient;  // Private reference; initialised to nil
  end;

var
  frmAccessObject: TfrmAccessObject;

implementation

{$R *.dfm}

{TfrmObjList}

procedure TfrmAccessObject.btnCreateClick(Sender: TObject);
begin
  if NewClient <> nil then  // avoid memory leakage
  begin
    ShowMessage ('Free existing object first');
    Exit;
  end;

  if (edtCName.Text = '') or (edtAccNo.Text = '') then
  begin
    ShowMessage ('Please enter a name and number');
    Exit;
  end;

  NewClient := TClient.Create;
  NewClient.SetCName (edtCName.Text);
  NewClient.SetAccNo (edtAccNo.Text);

  edtCName.Clear;
  edtAccNo.Clear;
  edtCName.SetFocus;
end; // end procedure TfrmObjList.btnAddClick

procedure TfrmAccessObject.btnShowClick(Sender: TObject);
begin
  if NewClient = nil then  // don't refer to a non-existent object
  begin
    ShowMessage ('Create object first');
    Exit;
  end;
  lblName.Caption := 'Name: ' + NewClient.GetCName;
  lblAccNo.Caption := 'Acc No: ' + NewClient.GetAccNo;
end; // end procedure TfrmObjList.btnShowClick

procedure TfrmAccessObject.btnFreeClick(Sender: TObject);
begin
  NewClient.Free;  // could be FreeAndNil (NewClient);
  NewClient := nil;

  {
  FreeAndNil (NewClient);  // alternative to previous two lines
  }

  lblName.Caption := 'Name: ';
  lblAccNo.Caption := 'Acc No: ';
  edtCName.SetFocus;
end; // end procedure TfrmObjList.btnFreeClick

end. // end unit ObjAccessU

⌨️ 快捷键说明

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