Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

помогите с GetPropValue()


Starkom ©   (2002-07-30 07:49:00) 

Есть такой код
Result:=IntToStr(Integer(GetPropValue(FComponents[0], FPropName,True)));

Где точно незакосяченый FComponents[0] типа TMyField (наследник TPersistent), FPropName тоже нормальная строка с именем свойства, которое точно есть.
Но такой код выдает всякую абракадабру.
Может кто подскажет возможную причину?
Такая же строка прекрасно работает для других свойств у многих других классов (например TFont или собственных классов).


Starkom   (2002-07-30 09:40:00) [1]

мда, похоже, что проблема вовсе не в GetPropValue
окно Watch -
TObject(FComponents[0]).ClassName = "TMyField", но
TMyField(FComponents[0]) = inaccesible value, при том что
TMyField(FComponents[0]).Pseudo (есть там такое поле) выдает правильный результат.


Программист на С++   (2002-07-30 09:31:00) [2]

FComponents[0] и наследник от TPersistent это совместимо ?


Starkom   (2002-07-30 09:22:00) [3]

Пишется для небольшой системки свое подобие инспектора объектов.


Программист на С++   (2002-07-30 09:18:00) [4]

А в каком контексте этот код используется ?


Starkom   (2002-07-30 09:02:00) [5]

да, конечно.
для того он и наследутся от TPersistent.
property MyField:integer read FMyField write FMyField;


Юрий Зотов   (2002-07-30 08:56:00) [6]

Искомое свойство - published?


Starkom   (2002-07-30 08:34:00) [7]

GetOrdProp(Instance, PropInfo) то как раз лажу и выдает, при том что Instance = FComponents[0], PropInfo вроде нормальный (там есть PropInfo^.Index и Default вроде отрицательные, но у других классов эти поля тоже бывают отрицательными, а функция выдает нормальный результат)


Eugene Lachinov   (2002-07-30 08:28:00) [8]

А function GetOrdProp(Instance: TObject; const PropName: string) : LongInt, что выдает ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо