私の問題は非常に単純です。私はこのコードを持つ dwsUnit を持っています:
type
TPointCoord = record
X: Float;
Y: Float;
Z: Float;
end;
type
TMyClass = class
private
fPosition: TPointCoord;
function GetPosition: TPointCoord;
procedure SetPosition(Val: TPointCoord);
public
property Position: TPointCoord read GetPosition write SetPosition;
constructor Create;
end;
function TMyClass.GetPosition: TPointCoord;
begin
Result := fPosition;
end;
procedure TMyClass.SetPosition(Val: TPointCoord);
begin
fPosition := Val;
end;
constructor TMyClass.Create;
begin
inherited Create;
fPosition.X := 1;
fPosition.Y := 2;
fPosition.Z := 3;
end;
var
mc: TMyClass;
begin
mc := TMyClass.Create;
mc.Position.X := 2; //Syntax Error
end.
mc.Position.X (または Position.Y または Z) で次を取得します。
Syntax Error: Cannot assign a value to the left-side argument [line: 42, column: 17]
これはどういう意味ですか?がプロパティの場合、レコードは読み取り専用ですか? そして、Delphi 側からアクセスする方法。(2番目の問題、それほど大したことではありません)