Форум: "Основная";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c