![]() |
Re: Sysygy Script Engine - Version 0.99b
So, wie versprochen habe ich es versucht unter Lazarus zum laufen zu bringen, was leider nicht geht,
weil die LCL anscheind kein CopyMemory kennt. Ich habe es unter Linux versucht. Was genau macht diese Methode ? kann man die auch noch anders Schreiben ? weil MoveMemory wird auch nicht gefunden. SygScript_Runtime_unit in dieser Unit traten die Fehler auf. Es währe außerdem noch schön, wenn du von vornerein die Windows unit nur mit Komplier schalter einbinden könntest. die musste ich in allen Units rauß nehmen. Evlt. gibt es ja noch eine andere Lösung für das Problem, ich habe ein neues Projekt angefangen, und mir ein Beispiel von dir angeschaut und folgende unit hinzugefügt:
Delphi-Quellcode:
brauche ich wirklich alle ?
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, SygScript_Constants_unit, SygScript_Parser_unit, SygScript_Runtime_unit; ; |
Re: Sysygy Script Engine - Version 0.99b
Zitat:
Zitat:
Also wenn du nur kompilieren willst, brauchst du nur die uSygParser. Fürs Ausführen brauchst du nur die uSygRunTime. Wenn du dann noch die bereits konvertierten Units auch zur Verfügung stellen willst, musst du die auch noch einbinden. Hier ist mal das einfachste Beispiel:
Delphi-Quellcode:
uses
uSygParser, // für TSygScript_Parser uSygRunTime; // für TSygScript_RunTime var Compiler : TSygScript_Parser; // das Objekt muss natürlich vorher erstellt werden Executor : TSygScript_RunTime; // ... und das Objekt sollte auch vorher erstellt werden function CompileAndExecute(ScriptSource: string): boolean; begin // Ergebniss vorinitalisieren result := False; // Script kompilieren if Compiler.ParseScript(ScriptSource) then begin // ByteCode im Executor speichern Executor.FillData(Compiler.OutputData); // Script ausführen Executor.Run; result := True; end; end; |
Re: Sysygy Script Engine - Version 0.99b
leider lässt sich uSygRunTim halt nicht kompelieren.
Ich denke CopyMemory müsste als eigene Funktion geben. Lazarus unter Windows zu Installieren ist ein Kinderspiel inzwischen auch unter Linux.... Allerdings unter Linux nur die 0.9.24 die "svn" Version musst du per Hand Kompilieren. Ich könnte mir auch vorstellen bei meinem GamePack deine Scrip Sprache zu verwenden. Z.B. das jeder ganz einfach 2D Spiele schreibe kann ohne Delphi oder Lazarus *G*. Vorrausgesetzt das es damit geht... nochmal zu klassen: in wie weit werden sie unterstütz ? das währe für mein GamePack eine Voraussetzung. z.b. erben und Methoden und Eigenschaften und Events und sowas... Die Idee währe aber gar nicht mal so schlecht.... |
Re: Sysygy Script Engine - Version 0.99b
Bei mir lief die Demo 2 manchmal instabil.
Spätestens wenn ich 3X Ctrl+F9 und dann F9 gedrückt habe, gab es die Fehlermeldung: Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00404448 in module 'PROJECT1.EXE'. Read of address 00C1C654'. Process stopped. Use Step or Run to continue. :roll: |
Re: Sysygy Script Engine - Version 0.99b
Zitat:
Zitat:
Was ich aber noch nicht funktioniert sind Events. Was du wahrscheinlich willst ist, einem Klassenevent im Script eine Scriptfunktion zuzuweisen - das funktioniert noch nicht. Ich hab leider auch noch keine genaue Idee, wie ich das genau realisieren kann. Aber bisher ist das noch nicht möglich. Zitat:
|
Re: Sysygy Script Engine - Version 0.99c
Ich hab den Fehler, den mir extrem
![]() Grüße |
Re: Sysygy Script Engine - Version 0.99b
Zitat:
Vielen Dank an alzaimar für sein beruhigendes #25! (* Trotzdem @alzaimar: "Schaun mer mal, dann seh' ma scho'."? Besser: "Schaun mer mal, dann seh(n)'mer scho'. Das erste "wir" = "mer" sollte zum zweiten "wir" = "ma" (bei Dir) passen, oller Preusse ;-) LG Roland *) |
Re: Sysygy Script Engine - Version 0.99c
Da es ein eindeutiges Schuldeingeständnis war, musste ich leider diesen Vorfall den zuständigen Behörden melden. :stupid:
|
Re: Sysygy Script Engine - Version 0.99c
Olle Petze!
|
Re: Sysygy Script Engine - Version 0.99d
So, um mal wieder vom OT wegzukommen :zwinker:, hab ich mal wieder eine neue Version hochgeladen.
Diesmal gibt es wieder eine sehr wichtige Erweiterung: try-finally und try-except - Blöcke. Dies Blöcke können natürlich auch verschachtelt werden, klar ;-). Was jedoch nicht unterstützt wird ist die on e:[ExceptionTyp] do - Anweisung im except-Teil. Exception-Klassen beherrscht die Script-Sprache nicht. Aber ich schau, dass ich das auch noch einbaue. Außerdem arbeite ich im Moment daran, die ScriptEngine auch FPC-kompatibel zu machen. Ich hab zwar FPC [noch] nicht installiert, aber das kommt noch. Was ich jetzt aber schon mal gemacht habe: ich habe die "uses Windows" - Deklaration aus dem Quelltext verbannt. Falls jedoch die Unit Windows benutzt werden muss, hab ich sie mit {$IFDEF WIN32} eingebunden. Außerdem hab ich die Funktion "CopyMemory" aus der "uSygRunTime" durch die Pascal-Funktion "Move" ersetzt. Ich weiß jetzt zwar nicht, ob "Move" in FPC bereits unterstützt wird, jedoch ist dies wahrscheinlicher als dass die Windows-Funktion "CopyMemory" unterstützt wird ;-) Und jetzt mal was ganz besonderes: ich hab seit dem letzten Release kein Bug mehr gefunden :shock: - hoffentlich bleibt das so (also das mit "kein Bug vorhanden sein" natürlich, nicht das "keinen Bug finden" ;-)) Den Download gibt (wie immer) im ![]() Grüße Dave |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:45 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