小编Spe*_*eak的帖子

DWScript:从IScriptObj到IInfo或TProgramInfo

给出一个IScriptObj参考如何获得相应的IInfoTProgramInfo


我有一个包装Delphi对象的脚本对象.

为了管理脚本对象的生命周期,Delphi对象存储对脚本对象的引用.Script对象是使用TdwsUnit组件声明的.这是非常标准的,如下所示:

德尔福

type
  TDelphiObject = class
  private
    FScriptObject: IScriptObj;
  public
    procedure DoSomething;
    property ScriptObject: IScriptObj read FScriptObject write FScriptObject;
  end;
Run Code Online (Sandbox Code Playgroud)

脚本

type
  TScriptObject = class
  protected
    procedure DoSomething; virtual;
  public
    constructor Create;
  end;
Run Code Online (Sandbox Code Playgroud)

Delphi对象的实例化和Delphi /脚本链接的设置发生在脚本对象构造函数的Delphi实现中.也非常标准:

德尔福

// Implements TScriptObject.Create
procedure TMyForm.dwsUnitClassesTScriptObjectConstructorsCreateEval(Info: TProgramInfo; var ExtObject: TObject);
var
  DelphiObject: TDelphiObject;
  DelphiObjectInfo: IInfo;
begin
  // Create the Delphi-side object
  DelphiObject := TDelphiObject.Create;

  // Get the script object "self" value
  DelphiObjectInfo := Info.Vars['self'];

  // …
Run Code Online (Sandbox Code Playgroud)

delphi dwscript

7
推荐指数
1
解决办法
407
查看次数

标签 统计

delphi ×1

dwscript ×1