Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Клонировать компонент в 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]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо