Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
3-1141824570
DeStranger
2006-03-08 16:29
2006.04.30
Изменение диапазона значений столбца


15-1144205313
Бугага
2006-04-05 06:48
2006.04.30
Windows 98


2-1144820856
IntruderLab
2006-04-12 09:47
2006.04.30
DLL


5-1130421252
Priest
2005-10-27 17:54
2006.04.30
Выпадающий список знач свойства и ReadOnly


2-1144857660
эксперт
2006-04-12 20:01
2006.04.30
посылка файла




   Наверх