Callmethod

отредактировано 07:12 Раздел: FastScript
Все привет!
у меня 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.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.