Главная страница
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.022 c
3-1091011103
vic
2004-07-28 14:38
2004.08.22
QRStringsBand


1-1091533364
начинающий
2004-08-03 15:42
2004.08.22
Есть ли CRC в TDecompressionStream?


1-1091688539
MadGhost
2004-08-05 10:48
2004.08.22
как добавить значение к переменной окружения PATH ??


14-1091348367
SergP
2004-08-01 12:19
2004.08.22
Какой формат записи двоичного числа в дельфи?


1-1091899829
dracula
2004-08-07 21:30
2004.08.22
Как избавиться от подвисания программы