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

Вниз

Клонировать компонент в runtime.   Найти похожие ветки 

 
Бездомный   (2011-10-17 17:20) [0]

К примеру есть на форме кнопка Button1:TButton. и есть переменная VarButton2:TButton. Как в VarButton2 создать копию Button1? (за исключением имени конечно).

Можно не копию именно Button1, а клона на основе того, что в dfm о Button1 хранится.


 
Медвежонок Пятачок ©   (2011-10-17 17:25) [1]

зачем?
если отличаться будет только имя.


 
Бездомный   (2011-10-17 17:27) [2]


> Медвежонок Пятачок ©   (17.10.11 17:25) [1]

Впоследствии я его сдвигаю и меняю Tag - этого достаточно.


 
stas ©   (2011-10-17 17:28) [3]

1. В поток можно считать настройки компонента, потом эти настройки из потока выгрузить в компонент


 
Медвежонок Пятачок ©   (2011-10-17 17:28) [4]

ну и зачем.
зачем клонировать, а затем менять свойства, если можно просто создать и выставить свойства?
клонировать зачем?


 
stas ©   (2011-10-17 17:29) [5]

2. Можно создать класс TMyButton= Class(TButton) и все настройки внести в него.


 
Бездомный   (2011-10-17 17:30) [6]


> Медвежонок Пятачок ©   (17.10.11 17:28) [4]

Чтобы не заморачиваться со свойствами.


 
Бездомный   (2011-10-17 17:31) [7]

Да и для общего развития.


> stas ©   (17.10.11 17:28) [3]
> 1. В поток можно считать настройки компонента, потом эти
> настройки из потока выгрузить в компонент

Вот это интересно, поищу как это делается


 
Медвежонок Пятачок ©   (2011-10-17 17:39) [8]

Чтобы не заморачиваться со свойствами.

кроме тэга и смещения по top/left остается аж целый капшон.
мороки выше глоовы конечно.


 
Бездомный   (2011-10-17 17:45) [9]


> Медвежонок Пятачок ©   (17.10.11 17:39) [8]

якоря еще, всякие параметры (для других типов), например NumbersOnly или Items для ComboBox-a


 
Бездомный   (2011-10-17 18:22) [10]

Сделал примерно так:


var
 C: TControl;
 MS:TMemoryStream;
begin
 MS := TMemoryStream.Create;
 try
   MS.WriteComponent(textOrButton);
   MS.Position := 0;
   C := TControlClass(textOrButton.ClassType).Create(FSurrogat);
   MS.ReadComponent(C);
   C.Name := "";
   C.Parent := textOrButton.Parent;
   C.Top := C.Top + C.Height + 8;
 finally
  MS.Free;
 end;
end;

Прошу попинать.



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

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

Наверх




Память: 0.48 MB
Время: 0.008 c
15-1318365002
Юрий
2011-10-12 00:30
2012.01.29
С днем рождения ! 12 октября 2011 среда


2-1319306729
Katie
2011-10-22 22:05
2012.01.29
caption для лейб


15-1318345230
Awesome-o 4000
2011-10-11 19:00
2012.01.29
Прошу дать совет


8-1220035851
Doki
2008-08-29 22:50
2012.01.29
3д модель


15-1318195803
Юрий
2011-10-10 01:30
2012.01.29
С днем рождения ! 10 октября 2011 понедельник