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

Вниз

Как скопировать контрол в другой parent?   Найти похожие ветки 

 
Asail   (2006-06-01 19:21) [0]

Здрасте!
Задача такая: есть две панели pnl1 и pnl2. На pnl1 лежит btn1 (TButton).
Нужно создать точно такую-же кнопку btn2 (со всеми свойствами) на pnl2.
Пытаюсь так:

btn2:=TButton.Create(pnl2);
btn2.Assign(btn1);
btn2.Parent:=pnl2;

Ругается на Assign - дескать, не могу скопировать TButton в TButton.
Что-то не то делаю, а как решить сию задачу что-то не врублюсь.


 
Rial ©   (2006-06-01 19:29) [1]

Ну переприсвой все поля вручную ....
btn2.Caption:=btn1.Caption;
btn1.OnClick:=btn1.OnClick;
...
btn2.Parent:=pnl2;


 
Asail   (2006-06-01 19:35) [2]


> Ну переприсвой все поля вручную ....

Круто, однако... Мне, в реальности, надо не только TButton копировать, но и еще TEdit, TDBGrid, TListBox и т.д. и т.п. Так-что, вручную запарюсь :-(.
Что, нет более красивого способа? Вроде, Assign должна помочь (согласно хелпу)... Но, как сей метод пользовать - не врублюсь :-(


 
Rial ©   (2006-06-01 20:51) [3]

Ну, может быть и есть. Не знаю.
Но тебе не все же копировать надо(только некоторые), а Assign-ить потомки WinControl-ов проблематично. Их ведь не сохранишь так просто.
Постарайся выйти из ситуации другим путем. Не копируй, а создай динамически сколько и где тебе их надо, и все.


 
PZ   (2006-06-02 05:59) [4]

А Ctrl-C, Ctrl-V разве нельзя использовать?


 
Asail   (2006-06-02 15:35) [5]


> А Ctrl-C, Ctrl-V разве нельзя использовать?

Это как? В runtime?


 
PZ   (2006-06-02 15:55) [6]

Runtime в вопросе не значится


 
Сергей М. ©   (2006-06-02 15:56) [7]


> Asail   (01.06.06 19:21)


Метод Assign() в ходе выполнения вызывает вирт.метод AssignTo(), который д.б. перекрыт конкретным наследником TPersistent.


 
Asail   (2006-06-02 16:13) [8]

AssignTo, вроде, перекрыт в TWinControl... Тогда почему не срабатывает приведение типа (как явное, так и неявное)? Т.е.:
(btn AS TWinControl).Assign(Button1 AS TWinControl);
или
TWinControl(btn).Assign(TWinControl(Button1));


 
Asail   (2006-06-02 16:15) [9]


> PZ   (02.06.06 15:55) [6]
> Runtime в вопросе не значится

Не надо придираться к словам. ИМХО, из вопроса вполне понятно, что речь идет о runtime...



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

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

Наверх




Память: 0.48 MB
Время: 0.04 c
3-1145610868
kaand
2006-04-21 13:14
2006.06.18
Ошибка при отрытии таблиц InterBase


2-1149056241
Тимофеич
2006-05-31 10:17
2006.06.18
размеры окна


1-1147515408
sinus
2006-05-13 14:16
2006.06.18
Кнопка на таскбаре


2-1149227834
kvi
2006-06-02 09:57
2006.06.18
код завершения программы


15-1148374070
DillerXX
2006-05-23 12:47
2006.06.18
Помогите с визуальным обновлением :(