Delphi Web Script:如何在Delphi中查找Script-TClass的类名

时间:2011-08-18 14:48:00

标签: delphi dwscript

想象一下这个程序,它可以在脚本中调用:

// Foo is not implemented in the Script but via Delphi
procedure Foo(ClassType: TClass); 

脚本看起来像这样:

type 
  TMyClass = class
  end;

Foo(TMyClass);

当Foo被调用时,我的Delphi应用程序会看到ClassType的Int64值。

e.g. Foo(661259635); 

您可以在DWS来源中看到TClass已明确转换为Int64(请参阅dwsCompiler.pas,procedure TObjectClassTypeMethod.Execute -> Info.ResultAsInteger := Int64(info.ValueAsClassSymbol[SYS_SELF]);)。

现在我可以在哪个结构中搜索该号码以找到相应的TdwsClass?

注意:实际上TMyClass并没有在脚本中实现,而是通过Delphi应用程序公开创建......我不知道这是否有所作为。

1 个答案:

答案 0 :(得分:1)

您当前必须手动将Int64转换回TClassSymbol,执行转换以将引用存储在Variant中(不支持TClass)。

获得TClassSymbol后,您可以查找符号表,或导航到成员。

目前没有IInfo助手来分类符号。