Вниз
Скачать: CL | DM;

Заполнение свойств компонента по их имени (в String формате)   Найти похожие ветки 

 
neteditor   (2004-02-12 16:12) [0]

Задача следующая: есть массив строковых пар THashedStringList
Что-то вида


Left=100
Top=50
Enabled=false
Caption=Form Caption


Как можно занести данные этих свойств в существуюший экземпляр класса? И желательно без кучи ифов :)


if HSL.Values["Left"] <> "" then c.Left := StrToInt(HSL.Values["Left"] );
if HSL.Values["Top"] <> "" then c.Top := StrToInt( HSL.Values["Top"] );
if HSL.Values["Height"] <> "" then c.Height := StrToInt( HSL.Values["Height"] );
if HSL.Values["Width"] <> "" then c.Width := StrToInt( HSL.Values["Width"] );
if HSL.Values["Caption"] <> "" then c.Caption := HSL.Values["Caption"];


 
Sandman25 ©   (2004-02-12 16:15) [1]

Работает только с published.
SetPropValue из TypInfo.pas


 
Тимохов ©   (2004-02-12 16:17) [2]

Функции написать типа

function GetInt(s: string; default: integer): integer;
begin
if s <> "" then result := strtoint(s) else result := default;
end;

использовать так

c.Left := getint(HSL.Values["Left"],c.Left);


 
icWasya ©   (2004-02-12 16:34) [3]

> Тимохов © (12.02.04 16:17) [2]
а на какой вопрос Вы отвечаете ?


 
Тимохов ©   (2004-02-12 16:43) [4]


> icWasya © (12.02.04 16:34) [3]

На вот это "И желательно без кучи ифов :)"


 
neteditor   (2004-02-12 17:21) [5]

2 Тимохов: спасибо :)

2 Sandman25: если б еще понять, как с ним работать... :) раньше никогда с интерфейсами не работал.


 
Sandman25 ©   (2004-02-12 17:26) [6]

[5] neteditor (12.02.04 17:21)

С какими еще интерфейсами???

with MyStrings do
for I := 0 to Count-1 do
SetPropValue(Self, Names[I], Values[Names[I]]);


 
Sandman25 ©   (2004-02-12 17:29) [7]

[5] neteditor (12.02.04 17:21)

Простите за "???". Я погорячился.


 
neteditor   (2004-02-12 17:39) [8]

2 Sandman25:

[5] не туды полез :) IOTAComponent.SetProp
спасибо за помощь

[6] вас можно понять :)


 
Sandman25 ©   (2004-02-12 17:41) [9]

[8] neteditor (12.02.04 17:39)

Спасибо за понимание... Тяжелый день сегодня.



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

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



Память: 0.46 MB
Время: 0.02 c
3-79566
Arthur1
2004-01-29 13:39
2004.02.25
Как вставить в DBImage1 картинку программным путем?


3-79681
Vi0let
2004-01-27 07:17
2004.02.25
Как обработать OnCellClick при dgRowSelect = true


1-79942
Zemal
2004-02-09 16:35
2004.02.25
Как получить из консольного приложения путь к исполняемому файлу?


3-79654
Lucky[ELF]
2004-01-31 01:23
2004.02.25
Как правильно настроить IB6.0 сервер и клиент


1-79793
Leech
2004-02-11 16:29
2004.02.25
---|Ветка была без названия|---




   Наверх