Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
Delphi 7 Professional
|
Re: ScriptEngine II (v. 0.4.0.0)
10. Okt 2009, 13:29
Eine neues Update ist da Version 0.4.0.0
Änderungen- Packages
Man kann jetzt eigene Script-Units oder externe Klassen in DLLs auslagern und diese dann nahtlos in die Script-Engine einfügen. Was jedoch wichtig ist: bei Packages sollte die DLL mit der gleichen Delphi-Version erstellt worden sein wie das Hauptprogramm.
Leider hab ich noch keine Demo für Packages erstellt, jedoch hab ich bereits die drei Testpackages für die IDE mit in den Download gepackt. Mit diesen Packages hat man Zugriff auf Streams und einige Listen.
In der IDE gibt es einen Package-Viewer, mit dem man die geladenen Packages anzeigen kann.
- FreePascal
Bei FreePascal ist die Call-Convention etwas anders als in Delphi. Dies hat vor allem Strings als Rückgabewert beeinflusst: sie sind nicht angekommen. Dieses Problem sollte nun behoben sein.
- Memory Leak unter FreePascal behoben (dank an EugenB)
- Linker
Der Linker speichert die benutzen Methoden jetzt in einem Baum. Dadurch ist das kompilieren etwas langsamer (ca. 0.1 sek), jedoch werden jetzt nur wirklich die Methoden mit in den finalen ByteCode hineinkopiert, die auch benutzt werden. Das Schlüsselwort export funktioniert weiterhin.
- Tools
Es gibt jetzt einen Unit-Importer, mit dem man Delphi-Klassen einfacher der Script-Engine hinzufügen kann. Dafür muss man nur den Interface-Teil der entsprechenden Unit in eine neue Unit in der IDE kopieren. Nachdem sich das neue Script kompilieren lässt (z.B. nachdem man hinter jeder Funktion/Procedure/Methode das Schlüsselwort "external" schreibt), wählt man unter "Project" -> "Generate Unit" -> "Application Unit" aus. Dann wird ein neuer Tab in der IDE geöffnet, dessen Inhalt man einfach komplett in die Zwischenablage kopiert und in eine neue Unit in Delphi einfügt.
- Sonstiges
Ein paar Bugs bzw. ein paar zu strenge Regeln im Parser behoben
- Neue Klasse in der System-Unit: TPersistent
Grüße
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
|
|
Zitat
|