property в модуле
Модератор: Модераторы
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
property в модуле
Хотел использовать property в модуле. И не понял - как правильно свойство объявить так, чтобы оно ссылалось на переменную, объявленную в implementation секции.
Я понимаю - что хочу странного, но не хочется давать в доступ саму перемунню. И в тоже время не хочется писать функцию - всёж лишние вызовы.
Вышел из положения через inline - функцию. Но красивее использовать property.
Я понимаю - что хочу странного, но не хочется давать в доступ саму перемунню. И в тоже время не хочется писать функцию - всёж лишние вызовы.
Вышел из положения через inline - функцию. Но красивее использовать property.
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
Код: Выделить всё
interface
function getA : TA; inline;
property A : TA read getA;
implementation
var
vA : TA;
function getA : TA; inline;
begin
Result := vA;
end;
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Именно так я смог.
А вот чтобы напрямую ссылаться на переменну:
Понятное дело, что при таком объявлении нарушается главный принци видимости. Но может есть какой-то модификатор для переменных типа forward-а?
А вот чтобы напрямую ссылаться на переменну:
Код: Выделить всё
interface
property A : TA read vA;
implementation
var
vA : TA;
Понятное дело, что при таком объявлении нарушается главный принци видимости. Но может есть какой-то модификатор для переменных типа forward-а?
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
Насколько мне известно — нет. Да оно, по большому счету, и ни к чему.
alexs
Чтобы напрямую - переменная должна лежать в той же области видимости. А у Вас такого нет.
Чтобы напрямую - переменная должна лежать в той же области видимости. А у Вас такого нет.
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
alexs писал(а):Красиво. Код должен быть красив.
Увы, я не представляю, как тут можно сделать красиво, даже внося изменения в синтаксис — добавлять секцию private в интерфейс тоже как-то криво.
Вот свойства классов были бы, пожалуй, вполне...
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Vadim писал(а):Чтобы напрямую - переменная должна лежать в той же области видимости. А у Вас такого нет.
Я именно это и говорю.
Иван Шихалев писал(а):Увы, я не представляю, как тут можно сделать красиво, даже внося изменения в синтаксис
Просто думал, что может что-то пропустил из новшеств. Ладно, пока обойдёмся inline функциями.
