Delphi中Interface接口的使用方法


本文整理自网络,侵删。

 
unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
   //定义接口如果接口独立成一个文件,则在应用程序中和实现程序中都要引用该接口文件;
    ICar = interface (IInterface)
        ['{ED52E264-6683-11D7-B847-001060806215}']
        procedure drive;
    end;
 
//接口实现类1,一定要加入TinterfacedObject才能使用;
    TCar = class(TInterfacedObject,ICar)
    public
        procedure drive;
    end;
//接口实现类2,一定要加入TinterfacedObject才能使用;
    THouseCar = class(TInterfacedObject,ICar)
    public
        procedure drive;
    end;
 
 TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
 private
    { Private declarations }
 public
    { Public declarations }
    function getCar:ICar; //此处可用别的方式来实现获取ICAR,如放在DLL文件中;
 end;
 
var
 Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
{ TCar }
procedure TCar.drive;
begin
 ShowMessage('TCar.drive');
end;
 
{ THouseCar }
procedure THouseCar.drive;
begin
   ShowMessage('THouseCar.drive');
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
 s:ICar;
begin
 s:= getCar;
 s.drive;
end;
 
function TForm1.getCar:ICar;
begin
   Result:=THouseCar.Create; //此处为整个实现的关键点;
//或Result:=TCar.Create;
end;
 
end.

相关阅读 >>

Delphi adoquery1数据表参数调用

Delphi2009之timage

Delphi 时间与相关类型(2) - tdate、ttime、ttimestamp

Delphi利用微软sapi实现语音控制(Delphi,tts,sr,灰色代码)_

Delphi 2009 中的泛型

Delphi 获取当前输入法

Delphi nethttpclient1 数据库查询

Delphi 按字符串长度对tstringlist的元素进行排序

Delphi 2009 indy10 idhttp get 中文出现乱码的问题

Delphi简单的播放声音

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...