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

Вниз

Как подменить объект на форме?   Найти похожие ветки 

 
ZHK ©   (2004-06-30 11:06) [0]

Не знаю, насколько я прав, но хочется. Я добавил в стандартный объект несколько своих методов. Вот так:
 TClearedTextListBox=class(TTextListBox)
   function AddDialogItem(Name:String;LibHandle:Integer=-1;DialogIndex:Integer=-1):Integer;
   function LibraryHandle(Index:Integer):Integer;
   function DialogIndex(Index:Integer):Integer;
   procedure Clear; override;
 end;


Затем положил родителя на форму, а FormCreate написал такой код:
 TextListBox1.Free;
 TextListBox1:=TClearedTextListBox.CreateParented(GroupBox2.Handle);
 TextListBox1.OnClick:=TextListBox1Click;
 TextListBox1.OnDblClick:=TextListBox1DblClick;
 TextListBox1.Align:=alClient;
 TextListBox1.Visible:=True;

Желая тем самым, чтобы объект с тем же имененем, но расширенными свойствами развернулся внутри GroupBox2. В чем я не прав?


 
ZHK ©   (2004-06-30 11:16) [1]

А получилось вот так:
 TextListBox1.Free;
 TextListBox1:=TClearedTextListBox.Create(GroupBox2);
 TextListBox1.OnClick:=TextListBox1Click;
 TextListBox1.OnDblClick:=TextListBox1DblClick;
 TextListBox1.Align:=alClient;
 TextListBox1.Visible:=True;
 GroupBox2.InsertControl(TControl(TextListBox1));


 
Sandman25 ©   (2004-06-30 11:18) [2]

GroupBox2.InsertControl(TControl(TextListBox1));

заменяется на
TextListBox1.Parent := GroupBox2


 
ZHK ©   (2004-06-30 11:20) [3]


> GroupBox2.InsertControl(TControl(TextListBox1));
>
> заменяется на
> TextListBox1.Parent := GroupBox2

А почему тогда не работает CreateParented? Ведь это, по идее, тоже самое?


 
Sandman25 ©   (2004-06-30 11:30) [4]

CreateParented не вызыает InsertControl, потому как Parent не обязан являться VCL-окном. См. справку по CreateParented


 
ZHK ©   (2004-06-30 11:52) [5]

А еще как-нибудь можно подменить объект на форме? Скажем в процессе компиляции, если его не регистрировать?


 
Sandman25 ©   (2004-06-30 12:01) [6]

[5] ZHK ©   (30.06.04 11:52)

Обычно наследника все-таки регистрируют, инсталлируют в IDE и кладут на форму.



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

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

Наверх




Память: 0.48 MB
Время: 0.041 c
1-1087995815
BFG9k
2004-06-23 17:03
2004.07.11
Не работает метод broadcast


1-1088177777
Lexa
2004-06-25 19:36
2004.07.11
как сделать текст в виде ссылки


1-1088139220
Vilux
2004-06-25 08:53
2004.07.11
Как мне послать компоненту комбинацию клавиш Ctrl+V или Shift+Ins


1-1088579909
Aleksandr
2004-06-30 11:18
2004.07.11
Из Excel в Delphi


1-1088067873
Partos
2004-06-24 13:04
2004.07.11
Удаление строк в Стринггриде