Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];

Вниз

помогите с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
1-35242
Poirot
2002-07-30 21:10
2002.08.12
Перерисовка формы методами из компонента от TComponent


14-35433
ghremlin
2002-07-17 15:08
2002.08.12
VBA


1-35288
alex_vas
2002-07-29 13:39
2002.08.12
ListView. Проблемы - фильтрация и скорость


4-35499
Korona
2002-06-06 02:19
2002.08.12
Получение названия сообщения по коду


3-35187
BAY
2002-07-20 07:34
2002.08.12
Generator





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский