Tôi tò mò muốn biết lý do tại sao Delphi đối xử với thuộc tính loại kỷ lục như chỉ đọc:"bên trái không thể được gán cho" đối với tài sản loại kỷ lục trong 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;
Nếu tôi cố gắng gán một giá trị cho bất kỳ các thành viên của bất động sản Rec, tôi sẽ nhận được "bên trái không thể được gán cho" lỗi:
procedure TForm1.DoSomething(ARec: TRec);
begin
Rec.A := ARec.A;
end;
trong khi làm việc cùng với các lĩnh vực cơ bản được phép:
procedure TForm1.DoSomething(ARec: TRec);
begin
FRec.A := ARec.A;
end;
Có giải thích nào cho hành vi đó không?
Trân
1 Bumped vào đây 4 năm sau khi câu trả lời của bạn! –