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

Вниз

Свойство с необязательным индексом   Найти похожие ветки 

 
SPeller ©   (2004-08-02 08:02) [0]

Всем доброго времени суток!

У меня такая вот загогулина. Есть свойство класса, объявленное так:

   property SelEndPos[ NewLineIfEOL: Boolean = False ]: TPos read GetSelEndPos write SetSelEndPos;

где TPos - это структура, имеющая 2 поля типа Integer. Обращаю внимание на необязательный индекс. Делаю Auto-completion классу, и получаю методы Get и Set. Причем оба с ошибками и при попытке скомпилить всё это, выскакивает два incompatible types. С методом Get всё просто - надо лишь добавить значение параметра по умолчанию:

   function GetSelEndPos( NewLineIfEOL: Boolean = False ): TPos;

А вот с методом Set уже хуже. В изначальном виде

   procedure SetSelEndPos( NewLineIfEOL: Boolean; const Value: TPos );

компилятор ругается, а параметр по умолчанию перед обязательным не подставишь. Кто-нибудь может подсказать как быть в этой ситуации? Или возможность вписать необязательный индекс - это лишь замануха? :)


 
SPeller ©   (2004-08-02 08:10) [1]

Хех, похоже на замануху :) Если всё-же оставить только метод Get, то прочитать свойство невозможно. Ни один из вариантов не проходит:

SelEndPos; SelEndPos[]; SelEndPos[false];

Причем в первом случае требует квадратных скобок, во втором - expression expected, а в третьем - too many actual parameters!!!

:-))


 
SPeller ©   (2004-08-04 12:34) [2]

Что, никто не может прокомментировать этот случай?


 
KSergey ©   (2004-08-04 12:41) [3]

Есть подозрение, что так сделать вообще нельзя... Не предусмотрено. Да и логике как-то оно не очень, по моему, соответствует ;) Для того  и индксированное св-ство, хотя я и понимаю, что хотеться может многое
Опять же - без свойства можно выкрутиться, просто методами. А то привыкли, понимаешь, свойства им подавай ;)


 
SPeller ©   (2004-08-04 12:48) [4]

Я просто попробовал вставить = False, оно и проглотило. Даже метод Get можно прописать. Но вот дальше... Может это не доработка? Ведь спокойно могла сказать что нельзя такого делать.


 
KSergey ©   (2004-08-04 12:56) [5]

Ну они не думали, что это кто-то попытается сделать :)
Как "магические" фразы в ворде.
Впрочем, могу заблуждаться.


 
SPeller ©   (2004-08-04 15:47) [6]

Очень странно что они "не думали об этом"..



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

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

Наверх




Память: 0.48 MB
Время: 0.313 c
1-1091558483
DreymanD
2004-08-03 22:41
2004.08.22
Циклическая процедура.


14-1091544669
NPP_OSI
2004-08-03 18:51
2004.08.22
Выделение и освобождение памяти


3-1090847343
MORA
2004-07-26 17:09
2004.08.22
2 лук-ап поля на одну таблицу


3-1091105940
Dysan
2004-07-29 16:59
2004.08.22
ADOQuery и DataSource - "Missing Connection or ConnectionString"


3-1090842348
-=VaaL=-
2004-07-26 15:45
2004.08.22
Access и прога на CD