Как работает FieldAddress
От: Аноним  
Дата: 14.07.06 13:46
Оценка:
Не могу получить адрес поля:
{$M+}
TMyClass = class(TObject)
private
FMyField: Integer;
published
property MyField: Integer read FMyField write FMyField;
end;
{$M-}

FMyClass: TMyClass;

Result := FMyClass.FieldAddress('MyField');

Result равен nil.

Что я делаю неправильно?
Re: Как работает FieldAddress
От: dkotov  
Дата: 14.07.06 13:59
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Не могу получить адрес поля:

А>{$M+}
А> TMyClass = class(TObject)
А> private
А> FMyField: Integer;
А> published
А> property MyField: Integer read FMyField write FMyField;
А> end;
А>{$M-}

А>FMyClass: TMyClass;


А> Result := FMyClass.FieldAddress('MyField');


А>Result равен nil.


А>Что я делаю неправильно?


Скорее всего потому, что 'MyField' это 'Property' а не поле.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Как работает FieldAddress
От: Аноним  
Дата: 14.07.06 14:05
Оценка:
D>Скорее всего потому, что 'MyField' это 'Property' а не поле.

Не получается создать поле в Published зоне.
Re[3]: Как работает FieldAddress
От: Jack128  
Дата: 14.07.06 14:42
Оценка: +1
Здравствуйте, Аноним, Вы писали:


D>>Скорее всего потому, что 'MyField' это 'Property' а не поле.


А>Не получается создать поле в Published зоне.

ну правельно. В сообщении об ошибке все четко написано.

[Pascal Error] Unit2.pas(27): E2217 Published field 'XXX' not a class or interface type

Что не понятно?
Re[4]: Как работает FieldAddress
От: Аноним  
Дата: 17.07.06 07:01
Оценка:
Спасибо.
Выходит, FieldAddress работает только в том случае, если поле есть экземпляр класса.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.