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

Вниз

Свойство класса - множество   Найти похожие ветки 

 
anton20vlad   (2011-07-19 17:21) [0]

Всем привет, у меня такой вопрос:

Есть класс со свойством которое является множеством:


type
 TEnum = (eOne, eTwo, eThree);
 TEnumSet = set of TEnum;
 
 TA = class
 private
   FP: TEnumSet;
   procedure SetP(const Value: TEnumSet);
   function GetP(): TEnumSet;
 public
   property P:TEnumSet read GetP write SetP;
 end;


Теперь я хочу выполнить следующее:

....
var
 V: TA;
...
begin
  V := TA.Create();
  Include(V.P, eOne, eTwo);
  V.Free();
end;
....


На строке с Include ругается на этапе компиляции:
[DCC Error] Unit.pas(482): E2064 Left side cannot be assigned to

Так работает как ожидается:

....
var
 V: TA;
 S: TEnumSet;
...
begin
  V := TA.Create();
  S := V.P;
  Include(S, eOne, eTwo);
  V.P := S;
  V.Free();
end;
....


Я думаю есть вариант сделать Include(V.P, eOne, eTwo); без ошибок компилятора, но я о нём не знаю. Помогите советом, поиз


 
MBo ©   (2011-07-19 17:48) [1]

include со свойствами не работает, а вот + можно использовать


 
anton20vlad   (2011-07-19 17:53) [2]

Понял. Спасибо. Теперь у меня ещё один вопрос, а можно ли сделать оверлод для функции Include на вход которой будет подаваться множество но не как var параметр? Че-то я не пойму как объявлена функция Include...


 
Игорь Шевченко ©   (2011-07-19 20:12) [3]


> Че-то я не пойму как объявлена функция Include...


compiler magic


 
MBo ©   (2011-07-19 20:17) [4]

Include - не функция, а процедура,  без var не обойтись. Причем она ещё и compiler-magic.

Да и зачем это всё нужно - ведь +/- нагляднее, и уже давно привычнее.



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

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

Наверх




Память: 0.47 MB
Время: 0.006 c
1-1271933869
Handbrake
2010-04-22 14:57
2011.11.06
Вопрос по взаимодействию компонентов.


15-1310201675
eXAAAXe
2011-07-09 12:54
2011.11.06
Как найти точки пересечения 2-х прямоугольников?


8-1217859464
REX
2008-08-04 18:17
2011.11.06
Звук


3-1265443339
lock95
2010-02-06 11:02
2011.11.06
SQL запрос ADODataSet.CommandText


3-1265617737
Tornado
2010-02-08 11:28
2011.11.06
Что нужно добавить в дистриб?