4

将 a TMemo、 aTEmbeddedWB和 aTButton放在 Delphi VCL 表单上。

这是表单单元的代码:

procedure TForm1.Button1Click(Sender: TObject);
var
  vResult: OleVariant;
  Para1: string;
begin
  Para1 := '5'; // edPara.Text;
  vResult := EmbeddedWB1.ExecScriptEx('evaluate', [Para1]);
  ShowMessage('Result from the Script: ' + IntToStr(vResult));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  EmbeddedWB1.HTMLCode.Assign(Memo1.Lines);
end;

这是的内容Memo1.Lines

<HTML> 
<HEAD> 
<TITLE>Test Script</TITLE> 
<SCRIPT> 
  function evaluate(x) { alert("Hello from the script evaluate(x)"); return eval(x * x); } 
</SCRIPT> 
</HEAD> 
<BODY> TEST Script: eval(x * x)</BODY> 
</HTML>

但它不起作用:vResult点击按钮后为0。

为什么它不起作用?

4

1 回答 1

3

在这种情况下,传递给的参数类型ExecScriptEx必须是Integera ,而不是 a string

procedure TForm1.Button1Click(Sender: TObject);
var
  vResult: OleVariant;
  Para1: string;
  ParaInt: Integer;
begin
  //Para1 := '5'; // edPara.Text;
  ParaInt := 5;
  vResult := EmbeddedWB1.ExecScriptEx('evaluate', [ParaInt]);
  ShowMessage('Result from the Script: ' + IntToStr(vResult));
end;

现在它起作用了!

于 2015-08-22T15:02:34.020 回答