Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249224 (10660)
  Suchen
 Zurück zur Übersicht
 AutorThema: Pascal unter Profan²
Sven Schmidts
Datum:22.01.02 20:58 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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