Я думаю, что вы правы - нет смысла использовать свойства для записей, это кажется большой работой ... просто есть процедура, которая делает что-то с записью: SetSomething (var ARec: TRec)
юбопытно узнать, почему Delphi рассматривает свойства типа записи только для чтения:
TRec = record
A : integer;
B : string;
end;
TForm1 = class(TForm)
private
FRec : TRec;
public
procedure DoSomething(ARec: TRec);
property Rec : TRec read FRec write FRec;
end;
Если я попытаюсь присвоить значение любому из членов свойства Rec, я получу ошибку «Невозможно назначить левую сторону»:
procedure TForm1.DoSomething(ARec: TRec);
begin
Rec.A := ARec.A;
end;
при этом допускается то же самое с нижележащим полем:
procedure TForm1.DoSomething(ARec: TRec);
begin
FRec.A := ARec.A;
end;
Есть ли объяснение этому поведению?