文章收藏-FAQ 位置:电脑学习网

COM 接口

什么是接口?接口有什么作用?如何用接口?

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

    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.

     [文章来源:“十万个为什么”电脑学习网]
     [网络地址:http://why100000.com]
     [版权声明:除本站部分特别声明禁止转载的专稿外,其他的文章可以自由转载,但请务必注明出处和原始作者。本站文章版权归文章原作者所有。如果本站转载的文章有版权问题请联系本站,我们会尽快予以更正。]
 

【字体:[大] [中] [小] 【加入收藏】 【发表评论】 【关闭本窗口】

Copyright © “十万个为什么”电脑学习网 2000-2007 陕ICP备06007929号
站务联系:MSN & Email:zhangking2008@gmail.com  QQ:9365822