【发布时间】:2010-10-11 20:29:48
【问题描述】:
我很想知道为什么 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;
对这种行为有什么解释吗?
【问题讨论】: