Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
9-1079999810
Новичек
2004-03-23 02:56
2004.08.22
Как написать 3d-игру?


1-1091946029
k-sergey
2004-08-08 10:20
2004.08.22
ListBox1MouseUp как узнать на каком items кликнули ?


1-1091773282
Jiuraasdasd
2004-08-06 10:21
2004.08.22
Как наладить переключеник клавишей Tab по текстовым полям?


1-1091703629
Spike
2004-08-05 15:00
2004.08.22
Открыть папку и выделить в ней нужный мне файл...


4-1089286295
bar
2004-07-08 15:31
2004.08.22
В Cи можно а в Delphi?




   Наверх