【问题标题】:Delphi Prism - how do I determine actual class that TObjectExtender is "extending"Delphi Prism - 我如何确定 TObjectExtender 正在“扩展”的实际类
【发布时间】:2012-12-13 03:52:34
【问题描述】:

我的 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

在 Delphi XEII 中编译时,但在 VS 2010 输出中的 Delphi Prism 中编译时

TObjectExtender: A log message

不管包含运行代码的实际类。

谁能建议一种在 Delphi Prism 中获取实际类名的方法?

【问题讨论】:

    标签: delphi-prism oxygene delphi-prism-2010


    【解决方案1】:

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

    Self.GetType().Name
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多