6
私はこのようにRTTIを使用して変数名を取得しようとしています。RTTIを使用して変数名を取得
ここは私のテストです。
type
TStringHelper = record helper for string
function Name: string;
end;
TMyRecord = record
Field1:string;
end;
implementation
{ TStringHelper }
function TStringHelper.Name: string;
var
context : TRttiContext;
begin
context := TRttiContext.Create;
result := context.GetType(@Self).Name; // return empty
context.Free;
end;
procedure TForm2.FormCreate(Sender: TObject);
var
r : TMyRecord;
begin
ShowMessage(r.Field1.Name);
end;
TRttiTypeの戻り値は空です。
変数名を取得する方法はありますか?
ありがとうございます。 RTVI(実行時変数情報)があればうれしいでしょう。 :) –
ここには「ランタイム」は必要ありません。コンパイラは、コンパイル時にシンボルを文字列に変換する組み込み関数を必要とするだけです。 C#6の関数nameofと同じです。投票してください:https://quality.embarcadero.com/browse/RSP-13290 –
私は投票を使用しました。ありがとう@StefanGlienke –