Главная » Delphi » Регистрация редактора компонентов

0

Подобно компонентам и редакторам свойств, редакторы компонентов также должны  быть  зарегистрированы в интегрированной среде  разработки Delphi — в ме тоде  Register() модуля. Для регистрации редактора компонентов вызывается про цедура  с соответствующим именем —  RegisterComponentEditor(), —  объявленная следующим образом:

procedure RegisterComponentEditor(ComponentClass: TComponentClass; ComponentEditor: TComponentEditorClass);

Первый параметр данной процедуры определяет тип компонента, для которого не

обходимо зарегистрировать редактор; второй параметр задает имя этого редактора.

В  листинге 12.7  приведен  код  модуля  CompEdit.pas,  который  содержит  компо

нент,  его редактор и вызов регистрации.

Листинг 12.7. CompEdit.pas — пример редактора компонента

unit CompEdit;

interface uses

SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms,

Dialogs, DesignEditors;

type

TComponentEditorSample = class(TComponent)

protected

procedure SayHello; virtual;

procedure SayGoodbye; virtual;

end;

TSampleEditor = class(TComponentEditor)

public

procedure ExecuteVerb(Index: Integer); override;

function GetVerb(Index: Integer): string; override;

function GetVerbCount: Integer; override;

end;

implementation

{ TComponentEditorSample }

procedure TComponentEditorSample.SayHello;

begin

MessageDlg(‘Hello, there!’, mtInformation, [mbOk], 0);

end;

procedure TComponentEditorSample.SayGoodbye;

begin

MessageDlg(‘See ya!’, mtInformation, [mbOk], 0);

end;

{ TSampleEditor }

const

vHello = ‘Hello';

vGoodbye = ‘Goodbye';

procedure TSampleEditor.ExecuteVerb(Index: Integer);

begin

case Index of

0: TComponentEditorSample(Component).SayHello;

// вызов функции

1: TComponentEditorSample(Component).SayGoodbye;

// вызов функции

end;

end;function TSampleEditor.GetVerb(Index: Integer): string;

begin

case Index of

0: Result := vHello;             // возвращает строку hello

1: Result := vGoodbye;           // возвращает строку goodbye

end;

end;

function TSampleEditor.GetVerbCount: Integer;

begin

Result := 2;           // возможно два действия

end;

end.

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии