Lazarus: Unterschied zwischen den Versionen
Root (Diskussion | Beiträge) |
Root (Diskussion | Beiträge) |
||
(32 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Lazarus ist eine freie Open-Source Entwicklungsumgebung für den Freepascal Compiler. | Die Lazarus-IDE (http://lazarus-ide.org/) ist eine freie Open-Source Entwicklungsumgebung für den Freepascal-Compiler. OrgaMon wird im Moment komplett auf die Lazarus IDE migriert. Die Delphi GUI (VCL) wird dabei völlig entfallen (siehe [[OrgaMon-next]]). | ||
[[Datei:Lazarus.png]] | [[Datei:Lazarus.png|200px]] | ||
Mit dem Einzug von Lazarus in die OrgaMon Entwicklung gibt es Bestrebungen keinerlei kommerziellen Komponenten für OrgaMon mehr einzusetzen. Das betrifft den Wegfall folgender Komponenten: | Mit dem Einzug von Lazarus in die OrgaMon Entwicklung gibt es Bestrebungen keinerlei kommerziellen Komponenten für OrgaMon mehr einzusetzen. Das betrifft den Wegfall folgender Komponenten: | ||
Zeile 7: | Zeile 7: | ||
Delphi, TMS Flexcell, IBObjects | Delphi, TMS Flexcell, IBObjects | ||
Welche ist die aktuellste Version? : https://github.com/fpc/Lazarus/tags | |||
== Installation == | == Installation == | ||
=== Windows === | |||
* https://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2064%20bits/ | |||
=== openSuSE 41.2 64bit === | === openSuSE 41.2 64bit === | ||
leider läuft Lazarus bei mir nicht "Out of The Box", im Moment sind 2 Schritte notwendig: | leider läuft Lazarus 1.6.2 (1.6.4 nicht getestet) bei mir nicht "Out of The Box", im Moment sind 2 Schritte notwendig: | ||
* Fehlermeldung: cursors.res hat das falsche Format | * Fehlermeldung: cursors.res hat das falsche Format | ||
Zeile 31: | Zeile 36: | ||
/usr/lib64/gcc/x86_64-suse-linux/4.8 | /usr/lib64/gcc/x86_64-suse-linux/4.8 | ||
== lOrgaMon == | == lOrgaMon == | ||
Zeile 40: | Zeile 41: | ||
"l" steht für Lazarus aber auch für Linux. Für die lOrgaMon - Entwicklung müssen folgende Open-Source-Packete installiert werden: | "l" steht für Lazarus aber auch für Linux. Für die lOrgaMon - Entwicklung müssen folgende Open-Source-Packete installiert werden: | ||
=== erforderliche Freepascal-Packages === | === erforderliche Freepascal-Packages (Online-Paket-Manager) === | ||
dexif_package | |||
ibcontrols (IBX) | |||
dcpcrypt | |||
zcomponent (Zeos) | |||
indylaz (Indy) | |||
laz_fpspreadsheet(fpSpreadsheet) | |||
=== ehemals erforderliche manuelle Installation === | |||
Die Installation von Paketen funktioniert in Lazarus in der Regel so: | Die Installation von Paketen funktioniert in Lazarus in der Regel so: | ||
* ->Package->Package-Datei (.lpk) öffnen | * ->Package->Package-Datei (.lpk) öffnen | ||
* -> | * ->Verwenden->Installieren->Ja | ||
Zeile 56: | Zeile 64: | ||
* Verzeichnis sollte "..\Indy\" sein (relativ zum OrgaMon-Verzeichnis) | * Verzeichnis sollte "..\Indy\" sein (relativ zum OrgaMon-Verzeichnis) | ||
* svn-Version empfohlen aus "https://svn.atozed.com:444/svn/Indy10/trunk" | * svn-Version empfohlen aus "https://svn.atozed.com:444/svn/Indy10/trunk" | ||
* | * .\Lib\IndyLaz.lpk | ||
==== ZEOS 7.2.4 ==== | |||
* https://sourceforge.net/projects/zeoslib/files/Zeos%20Database%20Objects/ | |||
* Verzeichnis sollte ..\Zeos\ heissen (relativ zum OrgaMon-Entwicklungsverzeichnis) | * Verzeichnis sollte ..\Zeos\ heissen (relativ zum OrgaMon-Entwicklungsverzeichnis) | ||
* | * von sourceforge lädt man sich "zeosdbo-7.2.4-stable.zip" | ||
* Versionsnummer von ZEOS steht in srv/core/ZClasses.pas | * Versionsnummer von ZEOS steht in srv/core/ZClasses.pas | ||
* .\packages\lazarus\zcomponent.lpk <br> | * .\packages\lazarus\zcomponent.lpk <br> | ||
==== IBX 2. | ==== ZEOS "trunk" ==== | ||
* Zeos (https://github.com/svn2github/ZeosLib.git) nach "Zeos-Git" auschecken | |||
* mklink /D C:\Users\Andreas\Documents\Embarcadero\Studio\Projekte\Zeos C:\Users\Andreas\Documents\Embarcadero\Studio\Projekte\Zeos-Git\trunk | |||
* Ansonsten Beschreibung wie oben | |||
==== IBX 2.3.3 ==== | |||
* Verzeichnis sollte ..\IBX\ heissen (relativ zum OrgaMon-Entwicklungsverzeichnis) | * Verzeichnis sollte ..\IBX\ heissen (relativ zum OrgaMon-Entwicklungsverzeichnis) | ||
* http://www.mwasoftware.co.uk/ | * http://www.mwasoftware.co.uk/ibx | ||
** Package->lpk öffnen->"ibexpressconsolemode" lpk öffnen | ** Package->lpk öffnen->"ibexpressconsolemode" lpk öffnen | ||
** Nutzung->Zum Projekt hinzufügen | ** Nutzung->Zum Projekt hinzufügen | ||
Zeile 85: | Zeile 97: | ||
[[fpspreadsheet]] | [[fpspreadsheet]] | ||
* Verzeichnis sollte "..\fpspreadsheet\" heissen | |||
* svn-Version empfohlen aus "svn://svn.code.sf.net/p/lazarus-ccr/svn/components/fpspreadsheet" | * svn-Version empfohlen aus "svn://svn.code.sf.net/p/lazarus-ccr/svn/components/fpspreadsheet" | ||
** Will das dennoch das Package installieren: 1.5 | laz_fpspreadsheet <br> | ** Will das dennoch das Package installieren: 1.5 | laz_fpspreadsheet <br> | ||
* Das Package "source/laz_fpspreadsheet" sollte installiert werden | |||
== In der Entwicklung == | == In der Entwicklung == | ||
Zeile 118: | Zeile 126: | ||
=== HTTP/2 === | === HTTP/2 === | ||
der lOrgaMon | der lOrgaMon enthält einen [[HTTP2]]-Server zur Anbindung einer HTML 5- GUI. Der Web- Client verwendet für die Persistenz eine sqlite3 Datenbank. Auf dem Client ist nur ein Chrome Browser nötig. | ||
Der Web Client | |||
<code> | <code> | ||
Zeile 125: | Zeile 132: | ||
^ TCP v | ^ TCP v | ||
[lOrgaMon-, lOrgaMon-, lOrgaMon-, lOrgaMon-Instances] | [lOrgaMon-, lOrgaMon-, lOrgaMon-, lOrgaMon-Instances] | ||
Zeile 136: | Zeile 139: | ||
[Firebird] [FileSystem] | [Firebird] [FileSystem] | ||
</code> | </code> | ||
Aktuelle Version vom 21. Februar 2024, 14:32 Uhr
Die Lazarus-IDE (http://lazarus-ide.org/) ist eine freie Open-Source Entwicklungsumgebung für den Freepascal-Compiler. OrgaMon wird im Moment komplett auf die Lazarus IDE migriert. Die Delphi GUI (VCL) wird dabei völlig entfallen (siehe OrgaMon-next).
Mit dem Einzug von Lazarus in die OrgaMon Entwicklung gibt es Bestrebungen keinerlei kommerziellen Komponenten für OrgaMon mehr einzusetzen. Das betrifft den Wegfall folgender Komponenten:
Delphi, TMS Flexcell, IBObjects
Welche ist die aktuellste Version? : https://github.com/fpc/Lazarus/tags
Installation
Windows
openSuSE 41.2 64bit
leider läuft Lazarus 1.6.2 (1.6.4 nicht getestet) bei mir nicht "Out of The Box", im Moment sind 2 Schritte notwendig:
- Fehlermeldung: cursors.res hat das falsche Format
- 1) kopiere ./OrgaMon/HTTP2/*.res nach
raib27:/usr/lib64/lazarus/lcl/units/x86_64-linux # l *.res -rw-r--r-- 1 root root 8812 Feb 14 15:34 btn_icons.res -rw-r--r-- 1 root root 4876 Feb 14 15:29 cursors.res -rw-r--r-- 1 root root 8907 Feb 14 15:35 dialog_icons.res -rw-r--r-- 1 root root 1567 Feb 14 15:36 lcl_dbgrid_images.res -rw-r--r-- 1 root root 6700 Feb 14 15:37 lcl_dbnav_images.res -rw-r--r-- 1 root root 359 Feb 14 15:38 lcl_dock_images.res -rw-r--r-- 1 root root 6666 Feb 14 15:38 lcl_edbtnimg.res -rw-r--r-- 1 root root 1335 Feb 14 15:35 lcl_grid_images.res
- Fehlermeldung: 'crtbeginS.o nicht gefunden'
- 2) in dem Projekt muss man noch einen Pfad nachtragen:
/usr/lib64/gcc/x86_64-suse-linux/4.8
lOrgaMon
"l" steht für Lazarus aber auch für Linux. Für die lOrgaMon - Entwicklung müssen folgende Open-Source-Packete installiert werden:
erforderliche Freepascal-Packages (Online-Paket-Manager)
dexif_package ibcontrols (IBX) dcpcrypt zcomponent (Zeos) indylaz (Indy) laz_fpspreadsheet(fpSpreadsheet)
ehemals erforderliche manuelle Installation
Die Installation von Paketen funktioniert in Lazarus in der Regel so:
- ->Package->Package-Datei (.lpk) öffnen
- ->Verwenden->Installieren->Ja
Indy 10.6.2
- Verzeichnis sollte "..\Indy\" sein (relativ zum OrgaMon-Verzeichnis)
- svn-Version empfohlen aus "https://svn.atozed.com:444/svn/Indy10/trunk"
- .\Lib\IndyLaz.lpk
ZEOS 7.2.4
- https://sourceforge.net/projects/zeoslib/files/Zeos%20Database%20Objects/
- Verzeichnis sollte ..\Zeos\ heissen (relativ zum OrgaMon-Entwicklungsverzeichnis)
- von sourceforge lädt man sich "zeosdbo-7.2.4-stable.zip"
- Versionsnummer von ZEOS steht in srv/core/ZClasses.pas
- .\packages\lazarus\zcomponent.lpk
ZEOS "trunk"
- Zeos (https://github.com/svn2github/ZeosLib.git) nach "Zeos-Git" auschecken
- mklink /D C:\Users\Andreas\Documents\Embarcadero\Studio\Projekte\Zeos C:\Users\Andreas\Documents\Embarcadero\Studio\Projekte\Zeos-Git\trunk
- Ansonsten Beschreibung wie oben
IBX 2.3.3
- Verzeichnis sollte ..\IBX\ heissen (relativ zum OrgaMon-Entwicklungsverzeichnis)
- http://www.mwasoftware.co.uk/ibx
- Package->lpk öffnen->"ibexpressconsolemode" lpk öffnen
- Nutzung->Zum Projekt hinzufügen
erforderliche Tools
- keine Installation nötig, die Tools müssen nur im Suchpfad des Compilers sichtbar sein
- das Quellverzeichnis bei "Projekt -> Projekteinstellungen -> Compiler -> Pfade " eintragen
fpspreadsheet
- Verzeichnis sollte "..\fpspreadsheet\" heissen
- svn-Version empfohlen aus "svn://svn.code.sf.net/p/lazarus-ccr/svn/components/fpspreadsheet"
- Will das dennoch das Package installieren: 1.5 | laz_fpspreadsheet
- Will das dennoch das Package installieren: 1.5 | laz_fpspreadsheet
- Das Package "source/laz_fpspreadsheet" sollte installiert werden
In der Entwicklung
Linux-Only: libzip.so.2
ev. den Zip Support über eine
libzip.so.2
siehe \lazarus\lcl\interfaces\gtk2\unitywsctrls.pas wie man das macht!
(k) D-BUS
über D-Bus will ich Serverdienste mit der GUI koppeln. Ob beides auf dem selben Host läuft oder nicht oder auch gemischt soll unerheblich sein, ich erhoffe mir Hilfe durch den "Transport" Begriff von D-Bus. Läuft beides auf dem selben Host soll kein Netzwerk-Interface nötig sein, hier erwarte ich "Zero" Ausführungszeiten durch die Kernel Integration. Ein Remote Host soll aber auch über das Internet ZUgriff haben.
Ausführung von Aktionen mit langen Wartezeiten
Der Client kontrolliert über Properties die Aktion, bisher wird der Key/Value Store memcached verwendet, ab sofort soll mal mit "Properties" des D-Bus experimentiert werden. Clients sollen z.B. in 1,5 Sekunden Rhytmus den Wert einer lang brauchenden Aktion abfragen können. Verlieren sie den Kontext soll nach einem Restart des Client und dem Erneuten Auslösen der Aktion nur ein Token auf die bisher laufende Aktion gegeben werden.
org::freedesktop::DBus::Properties::Set
HTTP/2
der lOrgaMon enthält einen HTTP2-Server zur Anbindung einer HTML 5- GUI. Der Web- Client verwendet für die Persistenz eine sqlite3 Datenbank. Auf dem Client ist nur ein Chrome Browser nötig.
HTTP/2 - Clients
^ TCP v
[lOrgaMon-, lOrgaMon-, lOrgaMon-, lOrgaMon-Instances]
^ local v
[Firebird] [FileSystem]