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