Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.015 c
6-4031
SergeyB
2003-07-15 10:59
2003.10.02
NetDDe & Delphi 5.0


1-3843
SergeyBG
2003-09-17 20:24
2003.10.02
Отладка DLL встроенным отладчиком.


14-4068
Lancelot
2003-09-10 23:53
2003.10.02
---|Ветка была без названия|---


1-3887
komissar
2003-09-18 15:11
2003.10.02
DesignIDE


1-3955
AK
2003-09-18 17:46
2003.10.02
Содержит ли файл музыку




   Наверх