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

Вниз

Runtime classes   Найти похожие ветки 

 
Ling ©   (2006-03-25 12:52) [0]

Пожалуйста дайте кто-нибудь ссылку на подробную инфу об использовании методов TObject:
ClassInfo
FieldAddress
и др.
В общем мне нужно в runtime , имея название класса, насвания полей
1) проверить корректность имени класса (есть ли такой)
2) создать экземпляр
3) проверить корректность названий полей
4) присвоить полям значения
буду рад любой помощи 8)


 
Юрий Зотов ©   (2006-03-25 13:05) [1]

1) проверить корректность имени класса (есть ли такой)
Если программа откомпилировалась и уже работает, то точно есть, можно не проверять. Если же имя класса задано строкой и класс зарегистрирован (см. RegisterClasses), то проверяется вызовом GetClass или FindClass. Они же возвращают ссылку на класс, которая может быть использована, например, для вызова конструктора.

2) создать экземпляр
Obj := Ссылка_на_класс.Create(...)

3) проверить корректность названий полей
Можно сделать только для published-полей. Если FieldAddress возвращает nil, значит, имя поля задано некорректно.

4) присвоить полям значения
Можно сделать только для published-полей, но нужно еще знать их тип. Например, для поля типа integer:
PInteger(Obj.FieldAddress(FieldName))^ := 3;


 
Kerk ©   (2006-03-25 13:10) [2]

Юрий Зотов ©   (25.03.06 13:05) [1]
но нужно еще знать их тип. Например, для поля типа integer:
PInteger(Obj.FieldAddress(FieldName))^ := 3;


Почему не SetPropValue ? Он без типа может.


 
jack128 ©   (2006-03-25 13:18) [3]

Kerk ©   (25.03.06 13:10) [2]
SetPropValue

а что ты будешь передовать в качестве параметра это процедке??


 
jack128 ©   (2006-03-25 13:19) [4]

jack128 ©   (25.03.06 13:18) [3]
уж не говоря о том, что разговор о полях, а не о свойствах ;-)


 
Ling ©   (2006-03-25 13:30) [5]

Огромное спасибо 8)


 
Kerk ©   (2006-03-25 23:08) [6]

jack128 ©   (25.03.06 13:18) [3]
а что ты будешь передовать в качестве параметра это процедке??


Тоже что и обычно. Объект, имя свойства и значение.

> уж не говоря о том, что разговор о полях, а не о
> свойствах ;-)

Это да.. упустил из виду :)



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

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

Наверх




Память: 0.48 MB
Время: 0.028 c
11-1125470568
MTsv DN
2005-08-31 10:42
2006.04.30
Как получить ComboBox без кнопки?


2-1145039380
_Iton_
2006-04-14 22:29
2006.04.30
Компоненты похожий на ТрееВью


15-1144420283
Jeer
2006-04-07 18:31
2006.04.30
Госдума отклонила сегодня законопроект


15-1144522375
kaZaNoVa
2006-04-08 22:52
2006.04.30
Как Вы относитесь к пикаперам?


1-1143132806
lookin
2006-03-23 19:53
2006.04.30
В MainMenu пробежаться по всем MenuItem любой степени вложенности