我已经注册了 TForm 类及其“标题”属性,然后我注册了一个全局变量:
NewGlobal := DwsUnit.Variables.Add;
NewGlobal.Name := 'MainForm';
NewGlobal.DataType := 'TForm';
NewGlobal.OnReadVar := GlobalReadProc;
GlobalReadProc 代码:
GlobalReadProc(Info: TProgramInfo;var Value: Variant);
begin
TVarData(Value).VType := varUnknown;
IUnknown(TVarData(Value).VUnknown) := TForm(Form1);
end;
在脚本中,我调用 MainForm variables 属性
MainForm.Caption := ''DWS Script in work'';
DWScript 显示异常:
不支持接口。
我究竟做错了什么?(我使用 IUnknown 是因为我在 VarCopySafe 过程中看到了这种类型转换,并且当 VType 不是 varUnknown 时出现异常)