レコード型のプロパティに直接アクセスすると「代入できない左辺値です」というエラーメッセージが出てコンパイルできません。
type
TPair = record
private
FA: string;
FB: string;
public
property a: string read FA write FA;
property b: string read FB write FB;
end;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
FPair: TPair;
public
property pair: TPair read FPair write FPair;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
pair.a := 'test';
end;
上記のような代入はできないのでしょうか?
下記のように一度レコード型を宣言してから代入すると可能なのですが、かなり面倒です。
var
tmpPair: TPair;
begin
tmpPair.a := 'test';
pair := tmpPair;
何かよい方法があればお教え下さい。
procedure TForm1.Button1Click(Sender: TObject);
begin
with pair do a := 'test';
end;
よくわかりませんが...
private
Pair: TPair;
public
でいいだろ?
with do を使う方法でうまくいきました。
with do は単に記述をシンプルにするための記法にすぎないと
思っていたので、たいへん参考になりました。
ありがとうございます。
with do とすることで、レコード型として代入できるのですね
ありがとうございました
ツイート | ![]() |