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

Вниз

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

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

Мастаки почему может не реистрироваться редактор компоненты?


 
Игорь Шевченко ©   (2003-05-21 12:38) [1]

Из-за ошибки, я полагаю


 
Supermagic ©   (2003-05-21 12:41) [2]

Привожу весь код редактора, если можешь скажи где ошибка?
Я её не вижу!!!!! :)


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.


 
Юрий Зотов ©   (2003-05-21 14:30) [3]

> Supermagic
> почему может не реистрироваться редактор компоненты?

Он регистрируется процедурой Register, верно? Верно.

А как Вы полагаете, кем, откуда и как может быть вызвана процедура Register, если вне Вашего модуля она недоступна?

Я полагаю, никем, ниоткуда, и никак. Что и наблюдается.


 
VaS ©   (2003-05-21 16:38) [4]

ЮЗ тонко намекает, что в секцию interface нужно поместить procedure Register;



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

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

Наверх




Память: 0.47 MB
Время: 0.017 c
14-26749
Real
2003-05-15 20:14
2003.06.09
Как тупят программисты?


7-26818
mike-d
2003-04-05 15:30
2003.06.09
режим stand-by монитора


14-26754
Andrew
2003-05-22 22:10
2003.06.09
Панель инструментов подобная Ms Word


1-26510
Maks Realov
2003-05-29 16:30
2003.06.09
Области видимости


1-26475
Raduga
2003-05-29 13:29
2003.06.09
Копирование большого файла