unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, PaxScripter, PaxPascal, BASE_PARSER; type TForm1 = class(TForm) Memo1: TMemo; PaxScripter1: TPaxScripter; PaxPascal1: TPaxPascal; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } procedure TestOverload(lVal: Boolean); overload; procedure TestOverload(const cVal: String); overload; procedure TestDefParam(const cVal: String = 'abc'); end; var Form1: TForm1; implementation {$R *.dfm} uses Imp_Classes, Imp_Dialogs; procedure TForm1_TestOverload1(lVal: Boolean); begin TForm1(_Self).TestOverload(lVal); end; procedure TForm1_TestOverload2(const cVal: String); begin TForm1(_Self).TestOverload(cVal); end; procedure TForm1.Button1Click(Sender: TObject); begin RegisterClassType(TForm1, -1); RegisterMethod(TForm1, 'procedure TestOverload(lVal: Boolean);', @TForm1_TestOverload1, fake); RegisterMethod(TForm1, 'procedure TestOverload(const cVal: String);', @TForm1_TestOverload2, fake); RegisterMethod(TForm1, 'procedure TestDefParam(cVal: String = ''abc'');', @TForm1.TestDefParam); PaxScripter1.ResetScripter; PaxScripter1.RegisterObject('Form1',Self); PaxScripter1.AddModule('main','paxPascal'); PaxScripter1.AddCode('main',Memo1.Lines.Text); PaxScripter1.Run; end; procedure TForm1.TestOverload(lVal: Boolean); begin If lVal Then begin ShowMessage('True'); end else begin ShowMessage('False'); end; end; procedure TForm1.TestDefParam(const cVal: String = 'abc'); begin ShowMessage(cVal); end; procedure TForm1.TestOverload(const cVal: String); begin ShowMessage(cVal); end; end.