Главная страница
    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.45 MB
Время: 0.002 c
3-1265342997
Степан
2010-02-05 07:09
2011.11.06
IBDataset обновляет не все поля


15-1310069123
George
2011-07-08 00:05
2011.11.06
Немножечко похвастаюсь


2-1311017214
R_R
2011-07-18 23:26
2011.11.06
Где находится VK_ENTER?


3-1265045910
lamer6666
2010-02-01 20:38
2011.11.06
Транзакция в ZConnection (ZeoS)


6-1245670490
FireMan_Alexey
2009-06-22 15:34
2011.11.06
Как получить список открытых портов на локальной машине





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский