Текущий архив: 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