Главная страница
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.097 c
1-1147427482
tytus
2006-05-12 13:51
2006.06.18
как проверить что файл текстовый?


2-1148982474
paul_k
2006-05-30 13:47
2006.06.18
Наступил на очередные грабли


15-1148368995
Polevi
2006-05-23 11:23
2006.06.18
решил вот помочь


15-1148538041
begin...end
2006-05-25 10:20
2006.06.18
Сотовый...


3-1145888783
linx
2006-04-24 18:26
2006.06.18
Изоляция транзакции