Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.238 c
14-1091663080
Alec
2004-08-05 03:44
2004.08.22
Как мне помог этот форум.


1-1091703204
mouse_web
2004-08-05 14:53
2004.08.22
Split строки


14-1091533035
}|{yk
2004-08-03 15:37
2004.08.22
4 уровневая архитектура???


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


1-1092139479
Анатолий
2004-08-10 16:04
2004.08.22
Инициализация модулей





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский