Главная страница
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.052 c
1-1143086318
walkernet
2006-03-23 06:58
2006.04.30
Как можно программно переместить курсор мыши?


2-1145122845
FBI Agent
2006-04-15 21:40
2006.04.30
Безопасный режим


15-1144341321
Isaev
2006-04-06 20:35
2006.04.30
Skins


5-1130411808
VadimMX
2005-10-27 15:16
2006.04.30
Редакторы компонентов


2-1144851391
Лом
2006-04-12 18:16
2006.04.30
Перевернуть оси координад