Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
Fedja2003 ©   (2005-07-28 11:16) [0]

Несколько вопросов:
1. Как с помощью редактора компонентов добавить визуальный компонент в форму. Например я создаю новый класс от TEdit, пишу для него редактор компонентов. При срабатывании редактора добавляю Label на форму. Label добавляется, но почему-то его не видно и нельзя изменять его размеры с помощью мыши. Хотя если переоткрыть форму, он уже появляется в нормальном виде.

TFjEdit = class(TEdit)
private
 { Private declarations }
protected
 { Protected declarations }
public
   { Public declarations }
published
   { Published declarations }
end;

TFjEditEditor = class(TComponentEditor)
private
 procedure ExecuteVerb(Index: integer); override;
 function GetVerb(Index: integer): string; override;
 function GetVerbCount: integer; override;
end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents("Fj", [TFjEdit]);
 RegisterComponentEditor(TFjEdit, TFJEditEditor);
end;

procedure TFjEditEditor.ExecuteVerb(Index: integer);
var FLabel: TLabel;
begin
 FLabel := TLabel.Create(nil);
 TFjEdit(Component).Owner.InsertComponent(FLabel);
 FLabel.Name := "Label1";
 Flabel.Caption := FLabel.Name;
end;

function TFjEditEditor.GetVerb(Index: integer): string;
begin
 Result := "Create Label";
end;

function TFjEditEditor.GetVerbCount: integer;
begin
 Result := 1;
end;

2. Как вообще написать компонент, который при создании при разработке может добавить на форму другие компоненты.
Я пробовал так.

constructor TFj.Edit.Create(AOwner: TComponent);
var FLabel: TLabel;
begin
 inherited;
 FLabel := TLabel.Create(AOwner);
 ....
end;
При этом Label появляется визуально, но при этом он не появляется в свойствах формы.

3. Как можно задать Name новому компоненту. Когда помещаем на форму компонент Delphi сам присваевает ему имя. Но когда сам создаешь, то должен сам задать ему имя. Есть ли какие-нибудь стандартные методы или надо писать свою процедуру для генерации Name;

Вообще идея такая пишется компонент для редактирования БД, при его создании и указывании таблицы для редактирования он сам создает Labelы и Editы для таблицы. Кто может помочь - пишите.


 
Юрий Зотов ©   (2005-07-28 14:05) [1]

Чтобы контрол стал видимым, ему надо назначить Parent.

Чтобы компонент правильно сохранялся в DFM, его Owber"ом должна быть форма. Есть, правда и другой способ, но в данном случае усложнения не нужны.

А вообще - см. IDesigner. Там и создание компонента, и назначение его имени, и все прочее. Через него работает и сама Delphi.



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

Форум: "Компоненты";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.039 c
2-1135830717
Yerlan Dossanov
2005-12-29 07:31
2006.01.22
Сокеты


2-1136559332
_kostet
2006-01-06 17:55
2006.01.22
RAISERROR


14-1135434810
Nic
2005-12-24 17:33
2006.01.22
Как поставить поверх WinME...


1-1134506057
Mongoose
2005-12-13 23:34
2006.01.22
помогите пожалуйста разобраться: последовательный симплекс метод


2-1135921105
Alex7
2005-12-30 08:38
2006.01.22
Обращение к БД при активизации формы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский