Основы COM. Рудалев В.Г - 30 стр.

UptoLike

30
После ОК Delphi создаст библиотеку типов , в которую войдут все общедоступ-
ные и опубликованные свойства, методы и события класса TActiveForm. Кроме
того, Delphi создаст три файла исходного кода и отобразит на экране форму.
Файл MyFormProj.dpr содержит описание DLL (MyFormProj.ocx) и по анало-
гии с внутренним сервером имеет вид
library MyFormProj;
uses
ComServ,
MyFormProj_TLB in 'MyFormProj_TLB.pas',
MyFormImpl in 'MyFormImpl.pas' {MyFormX: TActiveForm}
{$E ocx}
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;
{$R *.TLB}
{$R *.RES}
begin
end.
Файл MyFormProj_TLB содержит информацию из библиотеки типов . Файл
MyFormImpl реализует методы интерфейса , объявленные в библиотеке типов .
Этот файл содержит объявление класса формы
type
TMyFormX = class(TActiveForm, IMyFormX)
private
{ Private declarations }
FEvents: IMyFormXEvents;
procedure ActivateEvent(Sender: TObject);
procedure ClickEvent(Sender: TObject);
procedure CreateEvent(Sender: TObject);
procedure DblClickEvent(Sender: TObject);
procedure DeactivateEvent(Sender: TObject);
procedure DestroyEvent(Sender: TObject);
procedure KeyPressEvent(Sender:TObject;var Key:Char);
procedure PaintEvent(Sender: TObject);
protected
{ Protected declarations }
procedure DefinePropertyPages(DefinePropertyPage:
TDefinePropertyPage); override;
// и т.п.
public
{ Public declarations }
                                        30
ПослеО К Delphi соз д астби бли отеку ти пов , в которую в ой д утв сеобщ ед оступ-
ны еи опубли ков анны есв ой ств а, метод ы и собы ти я класса TActiveForm. К роме
того, Delphi соз д асттри фай ла и сход ного код а и отобраз и тна экранеформу.
Ф ай л MyFormProj.dpr сод ерж и т опи сани е DLL (MyFormProj.ocx) и по анало-
ги и св нутренни м сервером и меетв и д
library MyFormProj;
uses
  ComServ,
  MyFormProj_TLB in 'MyFormProj_TLB.pas',
  MyFormImpl in 'MyFormImpl.pas' {MyFormX: TActiveForm}

{$E ocx}
exports
  DllGetClassObject,
  DllCanUnloadNow,
  DllRegisterServer,
  DllUnregisterServer;
{$R *.TLB}
{$R *.RES}
begin
end.

Ф ай л MyFormProj_TLB сод ерж и т и нформаци ю и з би бли отеки ти пов . Ф ай л
MyFormImpl реали з ует метод ы и нтерфей са, объяв ленны е в би бли отеке ти пов .
Э тотфай л сод ерж и тобъяв лени екласса формы
type
TMyFormX = class(TActiveForm, IMyFormX)
   private
     { Private declarations }
     FEvents: IMyFormXEvents;
     procedure ActivateEvent(Sender: TObject);
     procedure ClickEvent(Sender: TObject);
     procedure CreateEvent(Sender: TObject);
     procedure DblClickEvent(Sender: TObject);
     procedure DeactivateEvent(Sender: TObject);
     procedure DestroyEvent(Sender: TObject);
     procedure KeyPressEvent(Sender:TObject;var Key:Char);
     procedure PaintEvent(Sender: TObject);
  protected
     { Protected declarations }
     procedure DefinePropertyPages(DefinePropertyPage:
                            TDefinePropertyPage); override;
     …
// и т.п.
  public
     { Public declarations }