Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 977
от 13.11.2007, 14:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 446, Экспертов: 64
В номере:Вопросов: 1, Ответов: 1


Вопрос № 108441: Доброго времени! Вопрос следующий: Есть база данных с таблицей в которой 2 текстовых поля в 1-ом хранится Класс компонента во 2-ом его свойство. в итоге получается что я имею 2 переменные типа стринг. допустим: str1:='TLabel...

Вопрос № 108.441
Доброго времени!

Вопрос следующий:
Есть база данных с таблицей в которой 2 текстовых поля в 1-ом хранится Класс компонента во 2-ом его свойство.
в итоге получается что я имею 2 переменные типа стринг.
допустим:
str1:='TLabel';
str2:='Caption';

На форме Label на клик которого мне надо изменить его свойство
Caption:='ooops';

(Типа вариант Label.caption:='ooops'; сразу в мусорку это и так понятно)
Нужен вариант используя переменные str1 и str2. т.е. решать через
(sender as TLabel).caption
или правильней (sender as str1).str2:='oops';
из строки str1 класс то я выдернул, а вот как к свойству обратиться ни как не получается!
вот:
var t,p:string;
cv:TClass;
begin
t:='TLabel';
p:='Caption';
RegisterClasses([TLabel]);
cv:=GetClass(t);
if cv=nil then showmessage('no')
else showmessage((cv.classname));
т.е. получается (sender as cv) а дальше?
Отправлен: 07.11.2007, 17:10
Вопрос задал: BlackRaider (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: PavelGM
Здравствуйте, BlackRaider!

Это вам нужен модуль TypInfo в uses. Делается дальше так (используя класс, который вы нашли) PropInfo := PropType(cv, str2). Затем анализируем какого типа свойство и работаем с ним в зависимости от типа. Например для строковых: SetStrProp(Sender, str2, 'ooops') (Если уверены можно и не анализировать)

P.S. Можно даже работать с Sender не зная его класса (главное чтобы от TComponent был, там интерфейс нужен IProperty, кажется) и находя в нем нужное свойство.
Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 07.11.2007, 20:49
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.0 от 08.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное