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

Вниз

Чтение свойст из строки Control.Property= xxxxxx   Найти похожие ветки 

 
Vladimir   (2003-09-18 11:24) [0]

Добрый день!
Хочу сделать чтение свойств из строк вида
Form1.Control1.Control2.Property= xxxxxx
Например:
Form1.Panel1.Button1.Caption=Открыть
Form1.Panel1.Button1.Left=10
Form1.Panel1.Button1.Top=20
т.е., форма Form1 в определенный момент присваивает кнопке Button1 с панели Panel1 следующие свойства:
caption "Открыть"
left 10
top 20
Добраться до Button1 достаточно просто - надо пройти по Controls формы и панели. Как быть с именами свойств?
Можно по-простому, что-то вроде
IF Property="Caption" THEN Button1.Caption = ...
IF Property="Left" THEN Button1.Left = ...
IF Property="Top" THEN Button1.Top = ...

Может кто знает более красивый способ?


 
Song ©   (2003-09-18 11:30) [1]

IF Controls[..] is TButton then TButton(Controls[...]).Caption:=...;


 
Vladimir   (2003-09-18 11:35) [2]

Вопрос в том, что я не знаю заранее Caption это или Top, Left, Color, а может что еще.


 
willys ©   (2003-09-18 13:18) [3]

можно делать так (Control - компонент, которому устанавливаем свойство, PropName - имя свойства, Value - значение):

uses TypInfo;
var
Control: TObject;
PropName: String;
Value: String;
PropInfo: PPropInfo;

...

PropInfo := GetPropInfo(Control.ClassInfo, PropName);
case PropInfo^.PropType^.Kind of
tkInteger:
SetOrdProp(Control, PropInfo, StrToInt(Value));
tkFloat:
SetFloatProp(Control, PropInfo, StrToFloat(Value));
tkString, tkLString, tkWString:
SetStrProp(Control, PropInfo, Value);
...
end;


 
Vladimir   (2003-09-18 14:06) [4]

Спасибо, willys!
Кажется, это то, что нужно. Буду пробовать.



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

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

Наверх




Память: 0.47 MB
Время: 0.029 c
1-3896
ALena
2003-09-22 13:13
2003.10.02
Общие вопросы


1-3960
Vadim
2003-09-20 12:44
2003.10.02
Полупрозрачная форма


1-3830
Fuxxxy
2003-09-21 20:25
2003.10.02
Панелька и окошки


14-4055
Marser
2003-09-15 14:34
2003.10.02
А вот и я


4-4163
Dude
2003-07-29 17:57
2003.10.02
Послать Shortcut