Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Geeignete Skriptsprache - PascalScript? (https://www.delphipraxis.net/138357-geeignete-skriptsprache-pascalscript.html)

WorstNightmare 8. Aug 2009 11:01


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:
procedure Start(Action: Byte);
begin
  if Action = 1 then
    SH.SendNext('Hallo');
  // usw
end;
SH ist dabei das ScriptHelper Objekt, welches dem Skript vorher irgendwie übergeben wurde.

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?

alzaimar 8. Aug 2009 11:49

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.

WorstNightmare 8. Aug 2009 12:27

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. :|

toms 8. Aug 2009 12:33

Re: Geeignete Skriptsprache - PascalScript?
 
Es gibt einen "class importer". Wie man eine importierte Klasse registriert sollte in einem der Demos gezeigt werden.

WorstNightmare 8. Aug 2009 12:40

Re: Geeignete Skriptsprache - PascalScript?
 
Mh, ok.
Werde dann mal etwas rumprobieren.

So.
Delphi-Quellcode:
procedure TForm1.PSScript1Execute(Sender: TPSScript);
var
  SH: TScriptHelper;
begin
  SH := TScriptHelper.Create;
  Sender.SetVarToInstance('SH', SH);
  Sender.ExecuteFunction([1], 'Start');
end;
Kompilieren geht einwandfrei, die Klasse ist registriert. Mein Skript sieht so aus:
Delphi-Quellcode:
procedure Start(Action: Byte);
begin
  SH.SendNext('test');
end;
Bei ExecuteFunction() gibt es einen Stack-Überlauf :?
Muss ich es vielleicht an einer anderen Stelle aufrufen?

alzaimar 8. Aug 2009 13:48

Re: Geeignete Skriptsprache - PascalScript?
 
Vermutlich wird PSSExecute aufgerufen, wenn 'ExecuteFunction' aufgerufen wird.
Zitat:

Zitat von WorstNightmare
Muss ich es vielleicht an einer anderen Stelle aufrufen?

Der Verdacht liegt nahe.

WorstNightmare 8. Aug 2009 14:34

Re: Geeignete Skriptsprache - PascalScript?
 
Ja, stimmt. Jetzt geht alles :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz