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) ショーモーダル評価

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

3) 同じ IdwsProgramExecution オブジェクトを使用してモーダル ダイアログから Button1Click を呼び出す

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

この時点で、「オブジェクトがインスタンス化されていません」というエラーが表示されます。ダイアログを閉じた後、何も表示されていない showmessage が表示されます。

4

1 に答える 1

1

これは DWS クルーによって修正されました。問題が報告され、数時間で修正されました。素晴らしい。

于 2013-09-02T07:34:20.450 に答える