文档章节

Delphi 的接口(5) - 一样的接口、不一样的实现

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 177
阅读 10
收藏 0

代码文件:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

  IMyInterface1 = interface
    function Func(a,b: Integer): Integer;
  end;

  TAdd = class(TInterfacedObject, IMyInterface1)
  public
    function Func(a: Integer; b: Integer): Integer;
    destructor Destroy; override;
  end;

  TMul = class(TInterfacedObject, IMyInterface1)
  public
    function Func(a: Integer; b: Integer): Integer;
    destructor Destroy; override;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TAdd }

destructor TAdd.Destroy;
begin
  ShowMessage('TAdd.Destroy');
  inherited;
end;

function TAdd.Func(a, b: Integer): Integer;
begin
  Result := a + b;
end;

{ TMul }

destructor TMul.Destroy;
begin
  ShowMessage('TMul.Destroy');
  inherited;
end;

function TMul.Func(a, b: Integer): Integer;
begin
  Result := a * b;
end;

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
  I: IMyInterface1;
begin
  I := TAdd.Create;
  ShowMessage(IntToStr(I.Func(9, 9))); {18}

  I := TMul.Create;  {I 在指向新的目标前会先释放前面所属的类}
  ShowMessage(IntToStr(I.Func(9, 9))); {81}
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2009/06/05/1496912.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
Delphi调用 C# 写的webservice

Delphi调用 C# webservice总结 用delphi的THTTPRIO控件调用了c#写的webservice。 下面是我调试时遇到的一些问题: 1:导入wsdl文件:file--new----other----webservice---WSDLimporter---输入...

vga
2014/11/25
0
0
C语言封装的sdk,转DELPHI中调用开发

阿里云物联网SDK套件是C语言封装的,而当前使用平台是delphi语言开发,现需要使用delphi语言实现一个demo,其中来调用此sdk套件的相关接口。(只要实现 跟\examples\windows\mqtt\demo.c 一样...

whereno
2016/09/07
6
3
集成开发环境--Delphi

Delphi,是美国Borland(宝兰)公司於1995年开发在Windows平台下的快速应用程式开发工具(Rapid Application Development,简称RAD),它的前身是在DOS下的产品Borland Turbo Pascal。(非开源...

匿名
2009/03/11
21K
1
毕业入职两个月-职场小白的碎碎念

  毕业后加入现在的公司快有两个月了,有牢骚,有对自己的想法,如果文章的内容和你产生了共鸣,不胜荣幸,如果让你感到不爽,十分抱歉。   从实习工作开始算起,工作也有一年半的时间了...

墨小宇
2018/08/11
0
0
关于delphi Com+调用C# DLL的一点说明[转]

最近公司进行产品改造,由于存在部分代码是用delphi写的Com+需要调用C#写的Dll方法,经过网上一些搜索和摸索,调用已经OK。但是至于两者之间的事务问题还需要用到的朋友深入研究。 现在来说一...

老朱教授
2017/08/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

跟我学Spring Cloud(Finchley版)-14-Feign使用Hystrix

Feign默认已经整合了Hystrix,本节详细探讨Feign使用Hystrix的具体细节。 服务降级 加配置,默认Feign是不启用Hystrix的,需要添加如下配置启用Hystrix,这样所有的Feign Client都会受到Hys...

周立_ITMuch
24分钟前
2
0
spark集群使用hanlp进行分布式分词操作说明

本篇分享一个使用hanlp分词的操作小案例,即在spark集群中使用hanlp完成分布式分词的操作,文章整理自【qq_33872191】的博客,感谢分享!以下为全文: 分两步: 第一步:实现hankcs.hanlp/co...

左手的倒影
26分钟前
2
0
Oracle分组排序几种常见方式

在日常操作中分页和分组比较多见,这里主要讲讲分组排序的不同场景: 1.row_number() over() row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,...

rechardchensir
34分钟前
1
0
JVM(三)对象的生死判定和算法详解

好的文章是能把各个知识点,通过逻辑关系串连起来,让人豁然开朗的同时又记忆深刻。 导读:对象除了生死之外,还有其他状态吗?对象真正的死亡,难道只经历一次简单的判定?如何在垂死的边缘...

王磊的博客
40分钟前
3
0
three.js 3D框架

https://threejs.org/docs/index.html#manual/zh/introduction/Creating-a-scene

壹峰
48分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部