Форум: "Основная";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
ВнизСвойство с необязательным индексом Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c