文档章节

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
【从零开始搭建自己的.NET Core Api框架】(六)泛型仓储的作用

系列目录 一. 创建项目并集成swagger   1.1 创建   1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架——SqlSugar   3.1 搭建环境   3.2 实战篇:利用SqlSugar快速实现CRUD   ...

在7楼
08/18
0
0
delphi中使用词霸2005的动态库XdictGrb.dll实现屏幕取词

近日来,在网上发现关于屏幕取词技术的捷径,搜索很长时间,发现实现方式以VB出现的居多,但是通过Delphi来实现的却好象没有看到,自己参考着VB的相关代码琢磨了一下通过delphi来实现的方式。...

技术小美
2017/11/12
0
0
集成开发环境--Delphi

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

匿名
2009/03/11
21K
1
​Delphi开发WebService给ASP.NET调用

Delphi开发WebService给ASP.NET调用 说明: 1、本文档分3个部分,分别为: 用Delphi编写WebService 在IIS下部署WebService 在ASP.NET中调用webservice 2、开发环境为Windows XP SP2、Delphi ...

vga
2014/11/08
0
2

没有更多内容

加载失败,请刷新页面

加载更多

什么是集群、分布式、集中式、伪分布式

1. 集中式 将项目等部署到同一台机器上,对机器性能要求比较高,一般会用多台机器备份,否则,如果机器出现死机等状况,整个项目将不能运行。 eg:就好比你要盖一座房子,你房子就给一个人盖...

吴伟祥
37分钟前
0
0
微服务写的最全的一篇文章

今年有人提出了2018年微服务将疯狂至死,可见微服务的争论从未停止过。在这我将自己对微服务的理解整理了一下,希望对大家有所帮助。 1.什么是微服务 1)一组小的服务(大小没有特别的标准,...

Java烂猪皮
38分钟前
0
0
Java 并发编程原理

为什么要使用多线程? 通过多线程提高吞吐量 伸缩性比较好,可以增加 CPU 核心来提高程序性能 什么场景下使用多线程? 如:tomcat BIO Java 如何实现多线程? Thread、Runnable、ExecutorSer...

aelchao
53分钟前
2
0
谨慎的覆盖clone方法

说在前面 有些专家级程序员干脆从来不去覆盖clone方法,也从来不去调用它,除非拷贝数组。 其他方式 可以提供一个构造函数或者工厂去实现clone功能。 相比于clone,它们有如下优势: 不依赖于...

XuePeng77
54分钟前
1
0
什么是最适合云数据库的架构设计?

分布式数据库技术发展多年,但是在应用、业务的驱动下,分布式数据库的架构一直在不断发展和演进。 开源金融级分布式数据库SequoiaDB,经过6年的研发,坚持从零开始打造数据库核心引擎。在技...

巨杉数据库
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部