Главная страница
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.011 c
6-1245670490
FireMan_Alexey
2009-06-22 15:34
2011.11.06
Как получить список открытых портов на локальной машине


2-1310551471
начинающий2
2011-07-13 14:04
2011.11.06
if или case


15-1310134286
Очень злой
2011-07-08 18:11
2011.11.06
Синхронизации папки пользователя при ее перенаправлении.


2-1311081664
anton20vlad
2011-07-19 17:21
2011.11.06
Свойство класса - множество


2-1310495966
@Дениска
2011-07-12 22:39
2011.11.06
low-order word