Главная страница
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.028 c
3-1087405731
Солер
2004-06-16 21:08
2004.07.11
как в отчёт вставить данные из Edit


14-1087721381
Nic
2004-06-20 12:49
2004.07.11
Это интересно


1-1088253844
Maratus
2004-06-26 16:44
2004.07.11
Принтер печатает только после постановки в задание всех страниц


4-1085945946
Остап
2004-05-30 23:39
2004.07.11
закрытие процесса


1-1088099687
ИМХО
2004-06-24 21:54
2004.07.11
Почему execCommand( Copy ) не копирует в буфер обмена?