Главная страница
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.022 c
9-100526
Кен
2003-01-30 07:03
2003.07.31
GlScene Как подгрузить текстуры для файла 3ds в TActor ?


1-100705
II
2003-07-18 12:50
2003.07.31
Как можно сделать снифер сообщений от конкретного окна?


3-100532
gsvserg
2003-07-10 18:14
2003.07.31
Права доступа


3-100596
Appa
2003-07-09 09:40
2003.07.31
IB


1-100682
Альф
2003-07-18 10:36
2003.07.31
Привет :) Маленький вопрос по FastReport 2.4