首页  编辑  

什么是接口?

Tags: /超级猛料/Friends.网友专栏/ihihonline(小小)/   Date Created:

什么是接口?

原创 (小小->爱被下载中……)

接口有什么作用?

如何用接口?

一系列的问题都会缠绕着你///如果你不想做分布式或是本地的应用程序调用的话,就不用看了;

COM1/COM2等硬件接口,我们都不陌生;但是如果要将接口正真用的软件上,而且用好的话,并不一定很容易;让我们继续吧;

我们所谓的接口其实就是一些过程、函数、属性集;记住,接口不可以有字段的,如果你有这个想法的话,那么从现在开始就要认识是错误的,对接口的访问就是对它提供的方法、事件、属性的访问,而且,接口所提供的方法都是公开的,是全部的公开的,所以就不必要用Public了;

在COM中,接口就是一切,一个组件就是一个接口集,用户只用通过接口才能和COM进行找交道;

最通用的接口

IUnKnown InterFace

如果和Com有关的话,一般用IUnKonow,否则用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}']

   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

 ////ShowMessage(NewValue);'

 /////NewValue := '第一个COM例程';

 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.