德尔福棱镜 - 如何确定 TObjectExtender "extending"的实际类



我的Delphi代码中有大量的日志记录,它经常使用Self.ClassName来记录包含当前正在执行的代码的类的名称。

我现在正在将其中一些代码编译到 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
在德尔福

XEII中编译时,但在VS 2010输出中以德尔福棱镜编译时

TObjectExtender: A log message

无论包含运行代码的实际类如何。

任何人都可以建议一种在德尔菲棱镜中获取实际类名的方法吗?

要获取当前类的名称,只需使用

Self.GetType().Name

相关内容

  • 没有找到相关文章

最新更新