我希望在编译时检查我的脚本,因此不希望将我的全局变量公开为 RTTIVariant。我使用以下代码将 Screen 对象公开给脚本。
Delphi端全局变量创建
var CompVar : TdwsGlobal;
..
CompVar := dwsUnit1.Variables.Add;
CompVar.Name := 'Screen';
CompVar.DataType := 'RttiVariant';
CompVar.OnReadVar := onGetScreen;
procedure onGetScreen(info: TProgramInfo; var value: Variant);
begin
value := TdwsRTTIVariant.FromObject(Screen);
end;
我想做的是用'RttiVariant<Vcl.Forms.TScreen>'替换'RttiVariant'。Script 对在 Delphi 端使用强 RTTIVariant 类型不满意,但在脚本端却很高兴。无论如何要做到这一点?