Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.12;
Скачать: CL | DM;

Вниз

помогите с GetPropValue()   Найти похожие ветки 

 
Starkom   (2002-07-30 07:49) [0]

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

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


 
Eugene Lachinov ©   (2002-07-30 08:28) [1]

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2002.08.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-35327
GTA 3
2002-07-29 21:03
2002.08.12
Сохранение строки в файл, НО в опр. строку по счёту


3-35180
Explorer
2002-07-23 09:40
2002.08.12
Как лучше и правильней


1-35290
roadrunner
2002-07-31 16:57
2002.08.12
Помогите новичку с печатью


3-35137
Kombat
2002-07-21 14:49
2002.08.12
IB и монопольный доступ


3-35162
MsGuns
2002-07-22 11:01
2002.08.12
Функция Ditto в Delphi