![]() |
Geeignete Skriptsprache - PascalScript?
Hallo,
ich suche gerade für mein Projekt eine geeignete Skriptsprache. Eigentlich wollte ich PascalScript nehmen, doch dann kamen mir Zweifel ob mein Vorhaben damit akzeptabel realisierbar ist. Das Skript soll nur 1-3 Methoden besitzen, welchen Parameter übergeben werden. Je nach Parameter führt das Skript Aktionen auf einer ScriptHelper Klasse aus. Das soll ungefähr so aussehen:
Delphi-Quellcode:
SH ist dabei das ScriptHelper Objekt, welches dem Skript vorher irgendwie übergeben wurde.
procedure Start(Action: Byte);
begin if Action = 1 then SH.SendNext('Hallo'); // usw end; Es gibt zwei andere Programme die meinem sehr ähnlich sind: Eines in Java, das benutzt JavaScript und ein anderes in C++, das benutzt Lua In JavaScript geht es genau so wie ich oben beschrieben habe, der Host führt sowas wie "js.setVariable("SH", scriptHelper)" aus, dann hat das Skript vollen Zugriff auf die Klasse ohne dass sie irgendwo im Skript definiert ist. Ist sowas auch in PascalScript möglich ohne dass ich vorher die gesamte Klasse im Script oder so definieren muss? Oder gibt es eine bessere Sprache (am besten mit Pascal-Syntax) für so ein Vorhaben? |
Re: Geeignete Skriptsprache - PascalScript?
Wenn 'SendNext' eine published-Methode ist, könnte es klappen. Versuch mal z.B. FastScript, RemObject Pascal Script, DWS usw usw usw. Die Links findest Du bei GoogleBing.
|
Re: Geeignete Skriptsprache - PascalScript?
Dann probiere ich mal PascalScript. Mein Problem ist nur, ich habe keinerlei Tutorials oder ähnliches darüber gefunden, wie man eigene Klassen registriert. :|
|
Re: Geeignete Skriptsprache - PascalScript?
Es gibt einen "class importer". Wie man eine importierte Klasse registriert sollte in einem der Demos gezeigt werden.
|
Re: Geeignete Skriptsprache - PascalScript?
Mh, ok.
Werde dann mal etwas rumprobieren. So.
Delphi-Quellcode:
Kompilieren geht einwandfrei, die Klasse ist registriert. Mein Skript sieht so aus:
procedure TForm1.PSScript1Execute(Sender: TPSScript);
var SH: TScriptHelper; begin SH := TScriptHelper.Create; Sender.SetVarToInstance('SH', SH); Sender.ExecuteFunction([1], 'Start'); end;
Delphi-Quellcode:
Bei ExecuteFunction() gibt es einen Stack-Überlauf :?
procedure Start(Action: Byte);
begin SH.SendNext('test'); end; Muss ich es vielleicht an einer anderen Stelle aufrufen? |
Re: Geeignete Skriptsprache - PascalScript?
Vermutlich wird PSSExecute aufgerufen, wenn 'ExecuteFunction' aufgerufen wird.
Zitat:
|
Re: Geeignete Skriptsprache - PascalScript?
Ja, stimmt. Jetzt geht alles :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz