Callmethod
Все привет!
у меня CodeGear Delphi 2007
и за чего Может быть Ошибка при компиляции
компилятор останавливает на fsScript1.AddMethod('procedure DelphiFunc(s: String; i: Integer)', CallMethod); а в логах пишит : There is no overloaded version of 'AddMethod' that can be called with these arguments
Точна такая же ошибка и в стандартном примере
FastScript\Demos\Calls
Как решить эту проблему
у меня CodeGear Delphi 2007
и за чего Может быть Ошибка при компиляции
компилятор останавливает на fsScript1.AddMethod('procedure DelphiFunc(s: String; i: Integer)', CallMethod); а в логах пишит : There is no overloaded version of 'AddMethod' that can be called with these arguments
Точна такая же ошибка и в стандартном примере
FastScript\Demos\Calls
Как решить эту проблему
unit Unit1;
interface
{$I fs.inc}
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, fs_ipascal, fs_iinterpreter;
type
TForm1 = class(TForm)
fsScript1: TfsScript;
fsPascal1: TfsPascal;
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
procedure DelphiFunc(s: String; i: Integer);
function CallMethod(Instance: TObject; ClassType: TClass; const MethodName: String;
var Params: Variant): Variant;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{$IFDEF Delphi6}
{$ENDIF}
procedure TForm1.Button1Click(Sender: TObject);
begin
{ делаем процедуру DelphiFunc доступной в скрипте }
[u] fsScript1.AddMethod('procedure DelphiFunc(s: String; i: Integer)', CallMethod);[/u]
{ компилируем скрипт с использованием PascalScript }
fsScript1.Lines := Memo1.Lines;
fsScript1.SyntaxType := 'PascalScript';
fsScript1.Parent := fsGlobalUnit;
if fsScript1.Compile then
fsScript1.Execute else { выполнить, если компиляция успешна}
ShowMessage(fsScript1.ErrorMsg); { вывести сообщение об ошибке }
end;
function TForm1.CallMethod(Instance: TObject; ClassType: TClass;
const MethodName: String; var Params: Variant): Variant;
begin
DelphiFunc(Params[0], Params[1]);
end;
procedure TForm1.DelphiFunc(s: String; i: Integer);
begin
ShowMessage(s + ', ' + IntToStr(i));
end;
end.