谈组件技术(二) 必备知识.docVIP

  • 1
  • 0
  • 约 14页
  • 2018-05-20 发布于河南
  • 举报
谈组件技术(二) 必备知识

{在理解了OOP之后,我们对于组件所要必备的另一个知识点:接口 进行阐述,也许作为刚刚接触接口的您来说,这有些枯燥,但是必须给您说明的是,此处所说的接口将会百分百的引用到以后的组件技术或是组件对象中,因为它们最终就是对接口的实现、封装!引用上篇文章} 什么是接口? 接口有什么作用?如何用接口? 一系列的问题都会缠绕着你,如果你不想做组件、分布式、本地的应用程序调用的话,就不用看了; COM1/COM2等硬件接口,我们都不陌生;但是如果要将软件中的接口和它们一样吗?又如何用接口呢?而且用好的话,并不一定很容易;让我们继续吧; 我们所谓的接口其实就是一些过程、函数、属性集;记住,接口不可以有字段的,如果你有这个想法的话,那么从现在开始就要认识是错误的,对接口的访问就是对它提供的方法、事件、属性的访问,而且,接口所提供的方法都是公开的,是全部的公开的,所以就不必要用Public了; 在组件中,接口就是一切,一个组件就是一个接口集,用户只用通过接口才能组件进行打交道; 最通用的接口 IunKnown: InterFace;//默认接口 首先我们来看一个简单的例程,然后进行详细的介绍; unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ComObj,ActiveX,StdVCL; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;   ILC = Interface(IUnknown) [{4FFE6DDB-80B9-4E2D-A05F-5F3B35311ED7}] //GUID,它是用来唯一标识一个接口的标识符,可以通过Ctrl + Shift + G产生一组GUID,而且你可以认为你所产生的GUID是全世界唯一的。永远不要担心GUID会被用完。 procedure SetValue(NewValue:String); function GetValue:String; end; TLC = Class(TInterfacedObject, ILC) public Value:String; procedure SetValue(NewValue:String); function GetValue:String; destructor Destroy;override; end; var Form1: TForm1; IMyLC : ILC; implementation {$R *.dfm} { TLC } destructor TLC.Destroy; begin Application.MessageBox(资源已经被完全释放,操作提示,MB_OK + MB_ICONINFORMATION); inherited; end; function TLC.GetValue: String; begin Result := Value; ShowMessage(Result); end; procedure TLC.SetValue(NewValue: String); begin Value := NewValue; end; procedure TForm1.Button1Click(Sender: TObject); begin IMyLC.SetValue(第一个COM例程); IMyLC.GetValue; end; procedure TForm1.FormCreate(Sender: TObject); begin IMyLC := TLC.Create; end; end. Interfaces接口 接口定义了包含一组抽象方法的类型。为什么说是包含了一组抽象的方法类型呢?原因是接口的继承可以完全进行类如类中的Overload(当然,没有这样的语法,但是效果是完全一样的),这也正是接口的特殊所在,同时,接口里的方法是完全公用的,就如Public,但没有必要加这个关键字。一个类,即使是自一个简单的基类继承而来也可以实现任意多的接口。接口与抽象类有些相似(即没有任何字段并且所有方法都是抽象方法的类),并且Delphi提供了附加的功能。Delphi的接口有时很象COM(组件对象模型)接口,然而,可以利用d

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档