Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249224 (10660)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Pascal unter Profan²
Sven Schmidts
| Datum:22.01.02 20:58 (schmidts@flat2serv.de) |
Hallo, ich habe die Tage noch ein älteres Projekt gefunden, mit dem sich Pascal Code und entsprechende Geschwindigkeit (deutlich schneller als Profan²) dynamisch in Profan² einbinden lassen. So sind hier Vorwärtsdeklarationen möglich, auch Array's kennt die DLL. Debugger ist integriert. Einfach mal anschauen, ich mache dann eine Freeware DLL draus: http://www.cdesign.de/download/scriptdll.zip Mfg. Sven Schmidts
Sven Schmidts
| Datum:22.01.02 21:01 (schmidts@flat2serv.de) |
Nachtrag: OLE ist genauso integriert wie Stringlisten, DFM (Delphi) Formulare (funkionierend), sodass z.B. Delphi Formulare mit Pascal Code von Profan² aus gesteuert werden können. Einfach mal die "DLLTest.prf"-Demo einsehen. Nachteil der DLL: Man muss Pascal können. Vorteil: Geschwindigkeitsrelevante Funktionen lassen sich auslagern. Mfg. Sven Schmidts
Stefan Schnell
| Datum:23.01.02 12:45 (mail@stschnell.de) |
Hallo Sven, habe mir die DLL mal geholt und mit folgendem simplen Test gearbeitet: PAS-Datei: Unit Test; Function Main : String; Begin Result := ShowMessage('Hello World') End; End. PRF-Datei: $I Script.inc LoadScriptDLL Script_LoadScript "TEST.PAS", 1 Script_RunScript UnLoadScriptDLL End Wirklich beeindruckend! Gefällt mir sehr gut. Besteht eigentlich auch die Möglichkeit den Pascal-Quelltext in irgendein OBJ- oder TPU-Format (sprich irgendwas binäres) zu verwandeln, so dass er nicht so offen rumliegt? Finde Deine Initiative toll, weiter so... Tschüss Stefan Schnell
Sven Schmidts
| Datum:23.01.02 14:28 (schmidts@flat2serv.de) |
Hallo, die Vorteile liegen klar auf der Hand: Obwohl es im Interpreter-Modus läuft, ist es um ein vielfaches schneller als Profan². Und bei der Funktionsvielfalt der integrierten Klassen .... Ich denke, grundsätzlich sollte es in Profan² gelöst werden, aber Verschlüsselungs- oder Dateioperationen lassen sich perfekt auf die (schnellere) DLL auslagern. So, zu den Fragen: Der Parser erwartet die Quelltexte im Klartext (PAS), die Form (DFM) muss entweder im Klartext oder als binäre DFM vorliegen. Dies kann aber von der DLL konvertiert werden ;) Befehle, Variablentypen, Records und Konstanten usw. folgender Unit's sind integriert: - System - SysUtils - Windows - Graphics - Classes - Controls - StdCtrls - ComCtrls - ExtCtrls - Forms - Menus - Grids - Dialogs - Db - DBTables - DbCtrls - DbGrids - Quickrpt - Dateutil - XProcs Die Größe kommt wegen den DB-Klassen (Unit DB, DBTables, DBCtrls) sowie wegen den OLE/ActiveX Klassen. Da die Klassen unmengen an Befehlen haben, liste ich sie hier nicht auf ;) Ich werde nochmal schauen, ob ich einen Freeware Editor finde, damit die Form's und Unit's nicht alle per Hand erstellt werden müssen ;) Ach ja, die DLL entwickele ich NICHT mehr weiter und übernehme KEINEN Support hierfür, höchstens auf eigenen Wunsch hier im Forum. Die DLL ist somit Freeware. Mfg. Sven Schmidts
Sven Schmidts
| Datum:23.01.02 14:32 (schmidts@flat2serv.de) |
Nachtrag: Schau Dir einfach mal die Datei "DLLTest.pas" an, da sind einige Beispiele drin, auch eines (LoadForm), wo Du die "Testform.dfm" angeben kannst. Dort wird mit drei Befehlen ein Bitmap geladen und angezeigt.
Stefan Schnell
| Datum:24.01.02 09:14 (mail@stschnell.de) |
Hallo Sven, nochmal eine kurze Frage: Wo bekomme ich die Interface (*.INT) Dateien für die Units DateUtil und XProcs her? Sind sie Bestandteil von Delphi (dann jedenfalls >3, da sie dort nicht enthalten sind)? Tschüss Stefan Schnell
Sven Schmidts
| Datum:24.01.02 09:29 (schmidts@flat2serv.de) |
Die DateUtil kommen aus den RX-Tools, die XProcs kann ich Dir per Mail zusenden, ist eine Ansammlung von wichtigen Funktionen. Sven
Stefan Schnell
| Datum:24.01.02 10:01 (mail@stschnell.de) |
Hallo Sven, nochmal eine Frage: Die Unit Grids enthält weitere Units (Messages und Mask), und die Unit DBTables (DbCommon, BDE, SMIntf, StdVCL), sind diese in der Script.DLL ebenfalls automatisch mit eingebunden? Wo finde ich denn die RXTools (URL)? Meine eMail-Adresse hast Du, bin Dir dankbar für die Sendung der XProcs. Tschüss Stefan Schnell
Sven Schmidts
| Datum:24.01.02 10:29 (schmidts@flat2serv.de) |
Hallo, die entsprechenden unter-Units sind ebenfalls mit drin (müssen sie ja ;)) Die RX-Tools findest Du unter http://www.fet.uni-hannover.de/~od/rxlib/cnengl.htm Die Mail mit der XProcs.pas ist bereits unterwegs ;) Mfg. Sven Schmidts
Stefan Schnell
| Datum:24.01.02 17:18 (mail@stschnell.de) |
Hallo Sven, und noch'ne Frage. Habe folgende Unit geschrieben, die aber leider nicht funktioniert, was mache ich falsch? Unit Change; Function Main : String; Var Buffer : Array[1..336] Of Char; LagJourCopy, LagJourSt : File; Begin Assign(LagJourCopy, 'LAGJOUR.COPY'); Reset(LagJourCopy); Assign(LagJourSt, 'LAGJOUR.ST'); Rewrite(LagJourSt); BlockRead(LagJourCopy, Buffer, SizeOf(Buffer)); BlockWrite(LagJourSt, Buffer, SizeOf(Buffer)); Close(LagJourSt); Close(LagJourCopy); Result := True; End; End. Danke für Deine Bemühungen. Tschüss Stefan Schnell
Sven Schmidts
| Datum: 25.01.02 08:46 (schmidts@flat2serv.de) |
Hi, - Nimm "AssignFile" statt "Assign" - Nimm Result := '' oder änder den Rückgabetyp in BOOLEAN. - Nimm die Function "fileCopy", die ist mit drin. Siehe XProcs Mfg. Sven Schmidts

| Zurück zur Übersicht