![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Клонировать компонент в runtime.
Бездомный © (2011-10-17 17:20:00)К примеру есть на форме кнопка Button1:TButton. и есть переменная VarButton2:TButton. Как в VarButton2 создать копию Button1? (за исключением имени конечно).
Можно не копию именно Button1, а клона на основе того, что в dfm о Button1 хранится.
Бездомный (2011-10-17 18:22:00) [1]Сделал примерно так:
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;
Прошу попинать.
Бездомный (2011-10-17 17:45:00) [2]
> Медвежонок Пятачок © (17.10.11 17:39) [8]
якоря еще, всякие параметры (для других типов), например NumbersOnly или Items для ComboBox-a
Медвежонок Пятачок (2011-10-17 17:39:00) [3]Чтобы не заморачиваться со свойствами.
кроме тэга и смещения по top/left остается аж целый капшон.
мороки выше глоовы конечно.
Бездомный (2011-10-17 17:31:00) [4]Да и для общего развития.
> stas © (17.10.11 17:28) [3]
> 1. В поток можно считать настройки компонента, потом эти
> настройки из потока выгрузить в компонент
Вот это интересно, поищу как это делается
Бездомный (2011-10-17 17:30:00) [5]
> Медвежонок Пятачок © (17.10.11 17:28) [4]
Чтобы не заморачиваться со свойствами.
stas (2011-10-17 17:29:00) [6]2. Можно создать класс TMyButton= Class(TButton) и все настройки внести в него.
stas (2011-10-17 17:28:00) [7]1. В поток можно считать настройки компонента, потом эти настройки из потока выгрузить в компонент
Медвежонок Пятачок (2011-10-17 17:28:00) [8]ну и зачем.
зачем клонировать, а затем менять свойства, если можно просто создать и выставить свойства?
клонировать зачем?
Бездомный (2011-10-17 17:27:00) [9]
> Медвежонок Пятачок © (17.10.11 17:25) [1]
Впоследствии я его сдвигаю и меняю Tag - этого достаточно.
Медвежонок Пятачок (2011-10-17 17:25:00) [10]зачем?
если отличаться будет только имя.