Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.01.29;
Скачать: [xml.tar.bz2];

Вниз

Клонировать компонент в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
2-1318575654
Laguna
2011-10-14 11:00
2012.01.29
Добавление в БД и извлечение картинки JPG


15-1318097571
Born Loser
2011-10-08 22:12
2012.01.29
Как передать данные из драйвера


4-1254333344
EPaul
2009-09-30 21:55
2012.01.29
Как запустить программу пользователем SYSTEM


15-1318241847
Demo
2011-10-10 14:17
2012.01.29
ПО для терминалов


15-1317835426
Empleado
2011-10-05 21:23
2012.01.29
Project Management Software





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский