Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.018 c
1-1088368968
juiceman
2004-06-28 00:42
2004.07.11
Delphi Script


3-1087448421
Yura
2004-06-17 09:00
2004.07.11
Проблема с полем выбора?


14-1087758502
VID
2004-06-20 23:08
2004.07.11
А не устроить ли и нам Флеш-моб ?


3-1087383732
Pul
2004-06-16 15:02
2004.07.11
COMPUTED BY поля INTERBASE


3-1087415555
cardinall
2004-06-16 23:52
2004.07.11
Как программно объеденить две ячейки в Excel?




   Наверх