1
我的Delphi代碼中有大量的日誌記錄,它經常使用Self.ClassName來記錄包含當前正在執行的代碼的類的名稱。德爾福棱鏡 - 我如何確定TObjectExtender是「擴展」的實際類
我現在正在將一些代碼編譯成Delphi Prism .NET程序集。
但是,在Delphi Prism下,Self.ClassName現在返回「TObjectExtender」而不是實際的類名。
例如
type
TMyClass: TObject
begin
procedure MyProc();
end;
...
procedure TMyClass.MyProc;
begin
Log(Format('%s: A log message', [Self.ClassName]));
end;
輸出
TMyClass: A log message
在Delphi XEII編譯時,但在Delphi棱鏡在VS 2010和輸出
TObjectExtender: A log message
含有運行代碼的實際類的編譯時無論。
任何人都可以提出一種方法來獲取Delphi Prism中的實際類名嗎?
真棒,謝謝!我的谷歌搜索幾乎沒有任何結果。 –