IInterface表示申明了一些函数,自己本身没有实现部分,需要由继承它的类来实现函数 uSayHello代码如下 unit uSayHello; interface uses SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs; type // IInterface表示申明了一些函数,自己本身没有实现部分,需要由继承它的类来实现函数 ISpeakChinese = interface(IInterf…
本文来自:http://www.cnblogs.com/hezihang/p/6083555.html Delphi采用接口方式设计模块,可以降低模块之间的耦合,便于扩展和维护.本文提供一个实现基于接口(IInterface)方式的监听器模式(观察者模式.订阅者模式),实现一个自动多播器. 下面程序在Berlin下测试通过,其他Delphi版本未测试,未进行跨平台测试(应该可以支持) 1.prepare 在观察者模式中采用接口,可以将相关函数汇合为接口. 举例:假设我们窗口有一个TTreeVie…
接口对象的内存空间 假设我们定义了如下两个接口 IIntfA 和 IIntfB,其中 ProcA 和 ProcB 将实现为静态方法,而 VirtA 和 VirtB 将以虚方法实现: IIntfA = interface procedure ProcA; procedure VirtA; end; IIntfB = interface procedure ProcB; procedure VirtB; end; 然后我们定义一个 TMyObject 类,它继承自 TInterfacedObject…
学习COM编程技术也快有半个月了,这期间看了很多资料和别人的程序源码,也尝试了用delphi.C++.C#编写COM程序,个人感觉Delphi是最好上手的.C++的模版生成的代码太过复杂繁琐,大量使用编译宏替代函数代码,让初学者知其然而不知其所以然:C#封装过度,COM编程注定是要与操作系统频繁打交道的,需要调用大量API函数和使用大量系统预定义的常量与类型(结构体),这些在C#中都需手工声明,不够简便:Delphi就简单多了,通过模版创建的工程代码关系结构非常清晰,而且其能非常容易使用API函…
Delphi的TRegistry注册表类 方法详解 Delphi的接口编程入门 delphi中接口的委托和聚合 2009-09-27 10:44:44|  分类: 默认分类 |  标签: |举报 |字号大中小 订阅     委托:当存在两个接口,和两个类:这两个类分别实现了两个接口:现在需要一个创建一个类支持这两个接口,为了不采用重复的工作就可以在Create方法中,创建实现了这两个接口的类,然后委托这两个实现了接口的方法去实现功能代码如下:typeISomeIntf = interface['…
在上一篇02中,写到的sayhello函数,需要使用2个接口参数,很繁琐.可以使用as参数,把多重继承的子类对象变成需要的对象 uSayHello代码如下 unit uSayHello; interface type // 接口 IGreetable = interface ['{D91DDE09-0FC4-4FE9-AE0D-9877E2F73BF6}'] // 输出函数 function SayHello: string; end; // TInterfacedObject实现了接口的默认方…
uSayHello类如下: unit uSayHello; interface type // 接口 IGreetable = interface ['{D91DDE09-0FC4-4FE9-AE0D-9877E2F73BF6}'] // 输出函数 function SayHello: string; end; // TInterfacedObject实现了接口的默认方法 TMan = class(TInterfacedObject) // 语言,姓名,皮肤颜色 属性 Language: str…
为什么使用接口? 举个例子好了:有这样一个卖票服务,电影院可以卖票,歌剧院可以卖票,客运站也可以卖票,那么我们是否需要把电影院..歌剧院和客运站都设计成一个类架构以提供卖票服务?要知道,连经理人都可以卖票,很显然不适合把经理人也包括到卖票服务的继承架构中,我们需要的只是一个共通的卖票服务.于是,卖票的服务是个接口,电影院.歌剧院什么的只要都遵循这样一个服务定义就能很好地相互交互和沟通(如果需要的话). 如何在Delphi中使用接口 1.声明接口 IMyInterface = interface(…
Delphi使用模块化开发,可以采用DLL或者BPL,两者的区别是BPL只能被同版本的Delphi使用,DLL可以被不同版本和不同开发工具的开发的软件调用. 因此我们的软件大多使用Delphi作为界面以及部分DLL模块的开发工具. DLL模块之间通过接口方式调用. 1.对象创建采用工厂模式,每个DLL负责某个对象或若干个对象的创建及释放,例如: DLL工程为http客户端(prjHttp.DLL)模块,通过DLL导出的GetHttpClientFactory获取http客户端工厂接口,通过接口创…
从Delphi3开始支持接口.接口定义了能够与一个对象进行交互操作的一组过程和函数.对一个接口进行定义包含两个方面的内容: 1)一方面是实现这个接口 2)另一方面是定义接口的客户 一个类能够实现多个接口,即提供多个让客户用来控制对象的“表现方式” 正如名字所表现的,一个接口就是对象和客户通信的接口.这个概念就像C++中的 pure virtual类.实现接口的函数和过程就是支持这个接口的类的工作. 一.定义接口 就像多有的Delphi类都派生于TObject一样,所有的接口都派生于一个称谓IUn…