Delphi 接口(1)
2021-07-04 07:11
标签:rri lse unit hello div graphics int end class 代码如下: Unit单元代码如下: 窗体代码: Delphi 接口(1) 标签:rri lse unit hello div graphics int end class 原文地址:https://www.cnblogs.com/YiShen/p/9862601.htmlunit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Unit1, Vcl.StdCtrls;
type
TForm2 = class(TForm)
edt_Name: TEdit;
edt_language: TEdit;
edt_SkinColor: TEdit;
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
btn1: TButton;
btn2: TButton;
btn3: TButton;
btn4: TButton;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure btn3Click(Sender: TObject);
procedure btn4Click(Sender: TObject);
private
{ Private declarations }
procedure SayHello(AMan: TMan; G: IGreetable);
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
{ TForm2 }
procedure TForm2.btn1Click(Sender: TObject);
var
G: IGreetable;
AMan: TMan;
begin
AMan:=TChinese.Create;
G:=TChinese.Create;
SayHello(AMan,g);
end;
procedure TForm2.btn2Click(Sender: TObject);
var
G: IGreetable;
AMan: TAmerican;
begin
AMan := TAmerican.Create;
G := TAmerican.Create;
SayHello(AMan,G);
end;
procedure TForm2.btn3Click(Sender: TObject);
var
G: IGreetable;
AMan: TFrench;
begin
AMan := TFrench.Create;
G := TFrench.Create;
SayHello(AMan,G);
end;
procedure TForm2.btn4Click(Sender: TObject);
var
G: IGreetable;
AMan: TKorean;
begin
AMan := TKorean.Create;
G := TKorean.Create;
SayHello(AMan,G);
end;
procedure TForm2.SayHello(AMan: TMan; G: IGreetable);
begin
edt_Name.Text := AMan.Name;
edt_language.Text := AMan.Language;
edt_SkinColor.Text := AMan.SkinColor;
end;
end.
unit Unit1;
interface
uses
Winapi.Windows, Messages, System.StrUtils, System.Variants, System.Classes,
Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
IGreetable = interface
[‘{00000000-0000-0000-C000-000000000046}‘]
//function SayHello: string;
//function Eat:string;
end;
TMan = class(TInterfacedObject, IGreetable)
Language:string;
Married:Boolean;
Name:string;
SkinColor:string;
private
function _Release: integer;
public
constructor Create;virtual;
end;
TChinese = class(TMan,IGreetable )
public
constructor create;override;
private
function SayHello:string;
end;
TAmerican = class(TMan ,IGreetable)
public
constructor create;override;
private
function SayHello:string;
end;
TFrench = class(TMan ,IGreetable)
public
constructor create;override;
private
function SayHello:string;
end;
TKorean = class(TMan,IGreetable)
public
constructor create;override;
private
function SayHello:string;
end;
implementation
constructor TChinese.create;
begin
inherited;
end;
function TChinese.SayHello: string;
begin
Result := ‘chinese.bmp‘;
end;
{ TMan }
constructor TMan.Create;
begin
name := ‘張三‘;
language := ‘中文‘;
SkinColor := ‘黃色‘;
end;
function TMan._Release: integer;
begin
end;
{ TAmerican }
constructor TAmerican.create;
begin
name := ‘Lee‘;
Language := ‘English‘;
SkinColor := ‘black‘;
end;
function TAmerican.SayHello: string;
begin
Result := ‘americam.bmp‘;
end;
{ TFrench }
constructor TFrench.create;
begin
Name := ‘SuFei‘;
Language := ‘法文‘;
SkinColor := ‘white‘;
end;
function TFrench.SayHello: string;
begin
Result := ‘french.bmp‘;
end;
{ TKorean }
constructor TKorean.create;
begin
Name := ‘韩国‘;
Language := ‘韩文‘;
SkinColor := ‘yellow‘;
end;
function TKorean.SayHello: string;
begin
Result := ‘korean.bmp‘;
end;
end.
object Form2: TForm2
Left = 0
Top = 0
Caption = ‘Form2‘
ClientHeight = 291
ClientWidth = 306
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = ‘Tahoma‘
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 120
TextHeight = 16
object lbl1: TLabel
Left = 48
Top = 8
Width = 38
Height = 16
Caption = ‘Name:‘
end
object lbl2: TLabel
Left = 48
Top = 46
Width = 60
Height = 16
Caption = ‘Language:‘
end
object lbl3: TLabel
Left = 49
Top = 80
Width = 59
Height = 16
Caption = ‘SkinColor:‘
end
object edt_Name: TEdit
Left = 114
Top = 8
Width = 121
Height = 24
TabOrder = 0
Text = ‘edt_Name‘
end
object edt_language: TEdit
Left = 114
Top = 38
Width = 121
Height = 24
TabOrder = 1
Text = ‘edt_language‘
end
object edt_SkinColor: TEdit
Left = 114
Top = 77
Width = 121
Height = 24
TabOrder = 2
Text = ‘edt_SkinColor‘
end
object btn1: TButton
Left = 114
Top = 128
Width = 121
Height = 25
Caption = ‘chinese‘
TabOrder = 3
OnClick = btn1Click
end
object btn2: TButton
Left = 114
Top = 159
Width = 121
Height = 26
Caption = ‘American‘
TabOrder = 4
OnClick = btn2Click
end
object btn3: TButton
Left = 114
Top = 191
Width = 121
Height = 25
Caption = ‘French‘
TabOrder = 5
OnClick = btn3Click
end
object btn4: TButton
Left = 114
Top = 222
Width = 121
Height = 25
Caption = ‘Korean‘
TabOrder = 6
OnClick = btn4Click
end
end
下一篇:c# 项目文件各作用