Gibt es eine gute Scripting-Pascal-ähnliche Sprache für Delphi?

Ich suche eine gute kostenlose Scripting-Engine für Delphi. Ich möchte einer Anwendung Skripte hinzufügen, damit ich kleine Testskripte schreiben kann. Konkret brauche ich:

Pascal-ähnliche Syntaxaktuell (ich habe mir RemObjects Pascal Scripting angesehen, aber es ist "veraltet" gemäß einem Beitrag, den ich gesehen habe).

Ich brauche keine vollständige Sprachunterstützung, nur die Grundlagen. Ich habe es gesehen:https://stackoverflow.com/questions/226135/scripting-library-for-delphi aber ich gehe davon aus, dass sich die Dinge seitdem ein wenig weiterentwickelt haben.

Alles, was ich tun möchte, ist, meinem Programm eine Memokomponente hinzuzufügen und zur Laufzeit ein Fragment der Quelle zum Memo hinzuzufügen und auf die Schaltfläche "Los" zu klicken. Ich möchte, dass das Skript auf die Variablen und Funktionen meiner Anwendung zugreifen kann.

Was ist der einfachste Weg, um dies zu erreichen? Beispielprogramm folgt.

program Project31;

uses
  Forms,
  Unit36 in 'Unit36.pas' {Form36};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm36, Form36);
  Application.Run;
end.

.

unit Unit36;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm36 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form36: TForm36;

implementation

{$R *.dfm}

procedure RoutineInMyApplication ;

begin
ShowMessage ('Hello from my Application') ;
end ;

procedure TForm36.Button1Click(Sender: TObject);
begin
//ExecuteScript (Memo1.Lines) ;
end ;

end.

.

object Form36: TForm36
  Left = 0
  Top = 0
  Caption = 'Form36'
  ClientHeight = 174
  ClientWidth = 391
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Button1: TButton
    Left = 300
    Top = 72
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 0
    OnClick = Button1Click
  end
  object Memo1: TMemo
    Left = 8
    Top = 21
    Width = 241
    Height = 145
    Lines.Strings = (
      'begin'
      'ShowMessage  ('#39'Hello world'#39') ;'
      'CallSomehow (RoutineInMyApplication) ;'
      'end.'
      ' ')
    TabOrder = 1
  end
end

Antworten auf die Frage(5)

Ihre Antwort auf die Frage