Главная страница
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.026 c
2-1144925954
Golik
2006-04-13 14:59
2006.04.30
зависает DBGrid :-) или я ?


15-1144395851
tria
2006-04-07 11:44
2006.04.30
Можно ли узнать, что данный exe сгенерирован Delphi?


2-1145087558
anubis
2006-04-15 11:52
2006.04.30
ImageList


2-1145009844
KyRo
2006-04-14 14:17
2006.04.30
Запрос по дате


15-1144171175
-=Z=-
2006-04-04 21:19
2006.04.30
Inter Base