⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ufrmsayhello.pas

📁 Delphi面向对象编程思想附书源码 好用哦!
💻 PAS
字号:
unit ufrmSayHello;

interface

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

type
  TfrmSayHello = class(TForm)
    GroupBox1: TGroupBox;
    edtName: TLabeledEdit;
    edtSkinColor: TLabeledEdit;
    edtLanguage: TLabeledEdit;
    btnUSA: TButton;
    btnKorean: TButton;
    btnCN: TButton;
    btnFrench: TButton;
    Image1: TImage;
    procedure btnUSAClick(Sender: TObject);
    procedure btnCNClick(Sender: TObject);
    procedure btnFrenchClick(Sender: TObject);
    procedure btnKoreanClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmSayHello: TfrmSayHello;

implementation

uses uSayHello;

{$R *.dfm}

procedure TfrmSayHello.btnUSAClick(Sender: TObject);
var
  AMan:TMan;
begin
  AMan:=TAmerican.create;
  edtName.Text:=AMan.Name;
  edtLanguage.Text:=AMan.Language;
  edtSkinColor.Text:=AMan.SkinColor;
  image1.Picture.LoadFromFile(AMan.sayHello);
end;

procedure TfrmSayHello.btnCNClick(Sender: TObject);
var
  AMan:TMan;
begin
  AMan:=TChinese.create;
  edtName.Text:=AMan.Name;
  edtLanguage.Text:=AMan.Language;
  edtSkinColor.Text:=AMan.SkinColor;
  image1.Picture.LoadFromFile(AMan.sayHello);
end;

procedure TfrmSayHello.btnFrenchClick(Sender: TObject);
var
  AMan:TMan;
  AFrench:TFrench;
begin
  AMan:=TFrench.create;
  edtName.Text:=AMan.Name;
  edtLanguage.Text:=AMan.Language;
  edtSkinColor.Text:=AMan.SkinColor;
  image1.Picture.LoadFromFile(AMan.sayHello);
  //以下将使用向下转型实现子类中新增的方法
  if AMan is TFrench then
  begin
    AFrench:=AMan as TFrench;
    application.MessageBox(AFrench.kiss,'问候',MB_ICONINFORMATION+MB_OK);
    application.MessageBox(AFrench.embrace,'问候',MB_ICONINFORMATION+MB_OK);
  end
  else
   AFrench:=nil;
  { //以下使用的是另一种向下转型方法,但不推荐使用。
  AFrench:=TFrench(AMan);
  application.MessageBox(AFrench.kiss,'问候',MB_ICONINFORMATION+MB_OK);
  application.MessageBox(AFrench.embrace,'问候',MB_ICONINFORMATION+MB_OK);
  }
end;

procedure TfrmSayHello.btnKoreanClick(Sender: TObject);
var
  AMan:TMan;
begin
  AMan:=TKorean.create;
  edtName.Text:=AMan.Name;
  edtLanguage.Text:=AMan.Language;
  edtSkinColor.Text:=AMan.SkinColor;
  image1.Picture.LoadFromFile(AMan.sayHello);
end;

end.

⌨️ 快捷键说明

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