Главная страница
    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.45 MB
Время: 0.008 c
14-100956
Rulja
2003-07-10 08:27
2003.07.31
---|Ветка была без названия|---


11-100658
Arhangel
2002-11-28 22:45
2003.07.31
Народ, что я не так делаю?


1-100737
alois
2003-07-16 18:56
2003.07.31
Ассоциирование файлов с программой


14-100894
Можно просто Федя
2003-07-13 22:29
2003.07.31
Хочу к администратору


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский