Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.31;
Скачать: CL | DM;

Вниз

Редактор компоненты   Найти похожие ветки 

 
Supermagic ©   (2003-05-21 12:57) [0]

Почему он не регистрируется?
Вот код редактора компоненты:
unit Redactor;

interface

uses
Controls,windows,graphics,classes,SysUtils,
designintf,QStdCtrls,forms, vectorimage,
messages,menus,QDialogs,DesignEditors;

type
TVectorEditor = class(TComponentEditor)
private
procedure HiThere;
public
constructor Create(AComponent: TComponent; ADesigner: IDesigner);override;
procedure Edit; override;
procedure ExecuteVerb(Index: Integer); override;
function GetVerb(Index: Integer): string; override;
function GetVerbCount: Integer; override;
end;
//Процедура HiThere и будет показывать сообщение и изменять свойство Caption:
implementation

constructor TVectorEditor.Create(AComponent: TComponent; ADesigner: IDesigner);
begin
inherited Create(AComponent,ADesigner);
//if csDesigning in ComponentState then
// TGFFigure(AComponent).Designer:=ADesigner;
// ((ADesigner.ContainerWindow).Color:=clBlue;
// (ADesigner.ContainerWindow).Invalidate;
// ((ADesigner.ContainerWindow) ).OnMouseMove:=TGFFigure(AComponent).CDMouseDown;
end;

procedure TVectorEditor.HiThere;
begin
MessageDlg("Hi! It replaces Default Component Editor.",
mtInformation, [mbOK], 0);
//(Component as TVectorImage).Caption:="Hi!";
Designer.Modified;
end;
//Процедуры Edit и ExecuteVerb только вызывают HiThere:

procedure TVectorEditor.Edit;
begin
HiThere;
end;
procedure TVectorEditor.ExecuteVerb(Index: Integer);
begin
if Index = 0 then HiThere;
end;
//Процедуры GetVerb и GetVerbCount определяют вид контекстного меню:

function TVectorEditor.GetVerb(Index: Integer): string;
begin
result:="&Get message ..."
end;
function TVectorEditor.GetVerbCount: Integer;
begin
result:=1;
end;
//Здесь в контекстное меню добавляется один пункт "Get message :".

//Редактор Компонент готов.

//Необходимо зарегистрировать новый Редактор Компонент, это делается аналогично регистрации Редактора Свойств, только проще:

procedure Register;
begin
RegisterComponents("Samples", [TVectorImage]);
RegisterComponentEditor(TVectorImage, TVectorEditor);
end;

end.


 
VMcL ©   (2003-05-21 13:18) [1]

Надеюсь этот модуль в ходит в состав проинсталлированного package?


 
icWasya ©   (2003-05-21 15:51) [2]

и процедура Register; должна быть прописана в интерфейсной части Unit`а



Страницы: 1 вся ветка

Текущий архив: 2003.07.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
3-100635
paxer
2003-07-10 14:44
2003.07.31
А что, в Yaffil убран тип Date?


3-100556
Till
2003-07-08 08:40
2003.07.31
FastReport генерация отчета на основе SQL запроса


8-100837
AlexT1000
2003-04-08 18:01
2003.07.31
Вывод метафайла с учетом матрицы трансформирования


6-100865
ec
2003-05-07 22:21
2003.07.31
ISAPI


3-100611
DBDev
2003-07-09 15:11
2003.07.31
Проблема с TDBImage! Подскажите ПЛИЗ!!!