作成日:
定数パラメーターでメンバー変数の値が壊れる
Delphiのバージョンは12.1です。
はまったのでメモ
以下のようにメンバー変数を定数パラメーターに指定して、呼び出し先で自身へ代入すると値がおかしくなります。
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
FValue: String;
procedure Foo(const Value: String);
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
FValue := 'init';
Foo(FValue);
SHowMessage('[' + FValue + ']');
SHowMessage('[' + FValue + ']');
end;
procedure TForm1.Foo(const Value: String);
begin
FValue := 'foo';
FValue := Value;
end;