什么是接口?
原创 (小小->爱被下载中……)
接口有什么作用?
如何用接口?
一系列的问题都会缠绕着你///如果你不想做分布式或是本地的应用程序调用的话,就不用看了;
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.