2

从下面的脚本代码中,我从 Delphi 调用 Run 过程,该过程调用也在 Delphi 中的 showmodal 过程。当从新创建的模式对话框调用 Button1Click() 时,全局变量 sl 没有被实例化。

脚本代码。

var sl : TStringList;

procedure Run();
begin
  sl := TStringList.create();
  ShowModal;
  showMessage(sl.Text);
  sl.free;
end;

procedure Button1Click();
begin
  sl.Add('DWS');
end;

Delphi 端代码。

1) 调用 Run()

FExec := FCompiledScript.BeginNewExecution;
FExec.Info.Func['Run'].Call([]);
FExec.EndProgram;

2) Showmodal 评估

Form1 := TForm1.Create(nil);
Form1.Exec := FExec;
Form1.ShowModal;

3) 使用相同的 IdwsProgramExecution 对象从模式对话框调用 Button1Click

FExec.Info.Func['Button1Click'].Call([]);

此时我收到错误“对象未实例化”。关闭对话框后,我得到了显示消息,其中没有任何内容。

4

1 回答 1

1

这已由 DWS 工作人员解决。问题在几小时内报告并修复。惊人的。

于 2013-09-02T07:34:20.450 回答