![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Присвоить свойство из строки [D7, WinXP]
Den303 © (2007-08-21 11:54:00)Доброго времени суток!
Такой вопрос: есть набор свойств в текстовом виде (из xml), нужно задать свойства контрола из этого файла.
Короче, как задать свойство компонента, которое хранится в виде строки?
Рыл в сторону FindComponent, но он находит только контрол, а не его свойства.
Den303 (2007-08-21 14:30:00) [21]Чтоб новую ветку не создавать, кину ещё вопросец:
Как disable'ить конкретную строку в ValueListEditor?
den303 (2007-08-21 13:25:00) [22]TNX за ответы.
Нашёл (после обеда сразу голова заработала :o) ) ошибку, оказывается, Sender был TValueListEditor, недосмотрел. Всё работает, пасиб
Юрий Зотов (2007-08-21 12:18:00) [23]> den303 © (21.08.07 12:13) [8]
1. Определяем тип свойства (см. TypInfo).
2. Преобразуем строку в значение этого типа.
3. Вызываем SetPropValue.
den303 (2007-08-21 12:18:00) [24]
SetPropValue((sender as TControl),ObjectsValueList.Strings.Names[ObjectsValueList.Row-1],ObjectsValueList.Strings.ValueFromIndex[ObjectsValueList.Row-1]);
Sender - TLabel
ObjectsValueList - TValueListEditor,
ObjectsValueList.Strings.Names[ObjectsValueList.Row-1] - к примеру, меняю Top, в текстовом виде нормально (надпись "Top").
ObjectsValueList.Strings.ValueFromIndex[ObjectsValueList.Row-1] - значение, в текстовом виде нормально (надпись "50").
den303 (2007-08-21 12:13:00) [25]Точнее, даже на Invalid Class Typecast. Не пойму, в чём дело
Сергей М. (2007-08-21 12:13:00) [26]
> ругается на Invalid Typecast
Ну а как не "ругаться", если ты, к примеру, целочисленному свойству пытаешься задать строковое значение ?)
Сергей М. (2007-08-21 12:11:00) [27]SetPropValue()
den303 (2007-08-21 12:11:00) [28]Пробую присвоить свойство через SetPropValue - ругается на Invalid Typecast :-(
den303 (2007-08-21 12:07:00) [29]Спасибо за разъяснения.
Какие конкретнодля моего вопроса функции, не подскажете?
Сергей М. (2007-08-21 12:05:00) [30]
> нужны такие вещи, как Top... Name... Сaption... Font.Style
Это не публичные, а опубликованныесвойства.
Для работы с оными имеется набор функций в составе typinfo.pas
Den303 (2007-08-21 12:03:00) [31]Только публичные, грубо говоря создаю форму из xml, нужны такие вещи, как Top... Name... Сaption... Font.Style...
Сергей М. (2007-08-21 11:56:00) [32]
> находит только контрол, а не его свойства
а какие св-ва тебя интересуют - приватные, защищенные, публичные, опубликованные ?