Delphi Web脚本:如何在Delphi中查找脚本TClass的类名
想象一下这个过程,它可以在脚本中调用:Delphi Web脚本:如何在Delphi中查找脚本TClass的类名,delphi,dwscript,Delphi,Dwscript,想象一下这个过程,它可以在脚本中调用: // Foo is not implemented in the Script but via Delphi procedure Foo(ClassType: TClass); 脚本如下所示: type TMyClass = class end; Foo(TMyClass); 当调用Foo时,我的Delphi应用程序会看到类类型的Int64值 e.g. Foo(661259635); 您可以在DWS源代码中看到,TClass被显式转换
// Foo is not implemented in the Script but via Delphi
procedure Foo(ClassType: TClass);
脚本如下所示:
type
TMyClass = class
end;
Foo(TMyClass);
当调用Foo时,我的Delphi应用程序会看到类类型的Int64值
e.g. Foo(661259635);
您可以在DWS源代码中看到,TClass
被显式转换为Int64
(请参见dwsCompiler.pas,过程TObjectClassTypeMethod.Execute->Info.ResultAsInteger:=Int64(Info.ValueAsClassSymbol[SYS_SELF]);
)
现在,我可以在哪个结构中搜索该数字以找到相应的TdwsClass
注意:事实上,TMyClass不是在脚本中实现的,而是通过Delphi应用程序公开创建的……我不知道这是否有区别。您当前必须手动将Int64强制转换回TClassSymbol,执行转换以将引用存储在变体中(不支持TClass) 拥有TClassSymbol后,可以查找符号表,或导航到成员
目前没有类符号的IInfo帮助程序。您当前必须手动将Int64强制转换回TClassSymbol,执行转换以将引用存储在变体(不支持TClass)中 拥有TClassSymbol后,可以查找符号表,或导航到成员
目前没有类符号的IInfo帮助程序。谢谢。我试图查找它,但最终得到了
函数TdwsClass.DoGenerate
。这就是创建tclassssymbol
时不引用TdwsClass的地方。我没有找到任何反向链接。我错过什么了吗?如果没有,我想我必须坚持使用类名并搜索所有已知的单元。谢谢。我试图查找它,但最终得到了函数TdwsClass.DoGenerate
。这就是创建tclassssymbol
时不引用TdwsClass的地方。我没有找到任何反向链接。我错过什么了吗?如果不是,我假设我必须坚持使用类名并搜索所有已知的单元。