Lazarus-in-Delphi-Umwandlung
- photor
- Beiträge: 512
- Registriert: Mo 24. Jan 2011, 21:38
- OS, Lazarus, FPC: Arch Linux: L 3.2 (Gtk2) FPC 3.2.2
- CPU-Target: 64Bit
Lazarus-in-Delphi-Umwandlung
Hallo Forum,
vielleicht bin ich blind oder zu ungeduldig. Dann stubst mich bitte mit der Nase drauf und entschuldigt.
Ich nutze @home Lazarus auf Linux, im Büro Delphi auf Windows. Nun habe ich zu hause auf Lazarus (als Hobby) ein Projekt gebaut, um etwas auszuprobieren und würde das eventuell nun gerne in's Büro tragen, um es dann da (unter Delphi) offiziell weiter zu entwickeln.
Natürlich kann ich die .pas-Dateien einfach rüber kopieren. Aber wie sieht es eigentlich mit den anderen Projektdateien (.lpi, .lpf, .lpr, .lfm, .res) aus? Für die Richtung Delphi -> Lazarus gibt es im Menü Einträge (das habe ich schon probiert und im großen und ganzen tut das auch; man hat zumindest einen Anfang). Aber die umgekehrte Richtung?
Danke für jeden Tipp,
Photor
vielleicht bin ich blind oder zu ungeduldig. Dann stubst mich bitte mit der Nase drauf und entschuldigt.
Ich nutze @home Lazarus auf Linux, im Büro Delphi auf Windows. Nun habe ich zu hause auf Lazarus (als Hobby) ein Projekt gebaut, um etwas auszuprobieren und würde das eventuell nun gerne in's Büro tragen, um es dann da (unter Delphi) offiziell weiter zu entwickeln.
Natürlich kann ich die .pas-Dateien einfach rüber kopieren. Aber wie sieht es eigentlich mit den anderen Projektdateien (.lpi, .lpf, .lpr, .lfm, .res) aus? Für die Richtung Delphi -> Lazarus gibt es im Menü Einträge (das habe ich schon probiert und im großen und ganzen tut das auch; man hat zumindest einen Anfang). Aber die umgekehrte Richtung?
Danke für jeden Tipp,
Photor
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Lazarus-in-Delphi-Umwandlung
Hi!
Nee, in dieser Richtung ist mir auc noch nix über den Weg gelaufen.
Typischerweise ist ja, dass Leute ihre alten Delphi-Sourcen nach Lazarus portieren.
Oder dass ne Firma zu fpc/Lazarus wechselt, weil es Multi-Plattform massiv erleichtert.
Aber wenn nicht zu viel UI enthalten ist: Die Units mitnehmen, ins Delphi-Programm reinhängen und händisch bearbeiten. Ist aber "Idioten-Arbeit".
Sorry
Winni
Nee, in dieser Richtung ist mir auc noch nix über den Weg gelaufen.
Typischerweise ist ja, dass Leute ihre alten Delphi-Sourcen nach Lazarus portieren.
Oder dass ne Firma zu fpc/Lazarus wechselt, weil es Multi-Plattform massiv erleichtert.
Aber wenn nicht zu viel UI enthalten ist: Die Units mitnehmen, ins Delphi-Programm reinhängen und händisch bearbeiten. Ist aber "Idioten-Arbeit".
Sorry
Winni
Re: Lazarus-in-Delphi-Umwandlung
Ich bin ja eigentlich der Meinung, dass die Entscheidung, von Delphi zu Lazarus zu gehen, unumkehrbar ist, aber ich habe trotzdem einige Projekte, die ich sowohl in Lazarus als auch in Delphi kompilieren kann.
- Delphi und Lazarus sollten ihre eigenen Projekt-Dateien haben (dpr/dproj bzw lpr/lpi). Beide IDEs sind bezüglich ihrer Projektdateien ähnlich starrsinnig und machen zu leicht deine Anpassungen rückgängig. Mit getrennten Dateien gehst du dem aus dem Weg. Der Aufwand ist hier nicht so groß, denn nachdem einmal die Umwandlung von Delphi zu Lazarus gemacht worden ist, ändern sich die Projektdateien nur noch wenig. Wenn doch, muss du halt die jeweils andere Version manuell nachziehen.
- Die pas-Dateien werden von beiden gemeinsam genutzt. Wenn es im Code Abweichungen gibt, wird das über eine {$IFDE FPC} gesteuert.
- Lazarus könnte zwar mit dfm-Dateien umgehen, es gibt aber zuviele inkompatible Properties. Daher habe ich jedes Formular zweimal, einmal als dfm für Delphi und als lfm für Lazarus. Klar, wenn du in der Arbeit auf einem Delphi-Formular eine neue Komponente einbaust, meldet Lazarus zuhause einen Fehler, und du musst das von Hand nachkorrigieren. Das Einbinden des Formulars in die pas-Datei machst du mit {$IFDEF FPC}{$R *.lfm}{$ELSE}{$R *.dfm}{$ENDIF}
- Schwierig wird es, wenn die Unterschiede in Formularen zu groß sind, so dass man nicht mit derselben pas-Datei arbeiten kann. Da dupliziere ich auch die pas-Datei, und zwar gibt es einen Ordner Delphi mit den Delphi-only Units und einen Ordner Lazarus mit den Lazarus-only Dateien. Da auch die Projekt-Dateien getrennt sind, kann man dafür sorgen, dass jede IDE nur ihre eigene Version zu sehen bekommt. Natürlich ist das schon grenzwertig, denn damit näherst du dich immer mehr dem Fall getrennter Projekte.
- Die Verwaltung eines gemeinsamen Projektes wird um so schwieriger, je mehr spezielle Komponenten verwendet werden. Die kommerziellen Delphi-Komponenten gibt es in der Regel eh nicht für Lazarus, und die Lazarus-Komponenten, die du zum Beispiel im OPM findest, sind in der Regel nicht für eine Anwendung in Delphi konzipiert. Daher weitgehend nur Standard-Komponenten verwenden.
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Lazarus-in-Delphi-Umwandlung
Ich vermute mal dass du das auch schon bedacht hast, aber zur Sicherheit: die Einführung von Lazarus im Unternehmen ist keine Option? Kostet den Arbeitgeber ja nichts und bringt ja auch eventuell Vorteile (Multiplattform z.B.).photor hat geschrieben: Mo 8. Feb 2021, 19:38 Ich nutze @home Lazarus auf Linux, im Büro Delphi auf Windows. Nun habe ich zu hause auf Lazarus (als Hobby) ein Projekt gebaut, um etwas auszuprobieren und würde das eventuell nun gerne in's Büro tragen, um es dann da (unter Delphi) offiziell weiter zu entwickeln.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
- photor
- Beiträge: 512
- Registriert: Mo 24. Jan 2011, 21:38
- OS, Lazarus, FPC: Arch Linux: L 3.2 (Gtk2) FPC 3.2.2
- CPU-Target: 64Bit
Re: Lazarus-in-Delphi-Umwandlung
Hallo,
Erstmal „Danke“ an alle, die geschrieben haben. Ich werde mir die Tipps ansehen, ausprobieren und dann mal von meinen Erfahrungen berichten.
Hierzu noch ein paare Gedanken:
Und jetzt habe ich halt was mit Lazarus angefangen, dass ich eventuell auf Arbeit nutzen könnte. Das müsste dann halt in Delphi passieren. Hauptsächlich hieße das, z.B. die GUI-Forms neu bauen. Ok, dann muss da eben.
Ciao,
Photor
Erstmal „Danke“ an alle, die geschrieben haben. Ich werde mir die Tipps ansehen, ausprobieren und dann mal von meinen Erfahrungen berichten.
Hierzu noch ein paare Gedanken:
Natürlich habe ich auch daran gedacht - aber das ist keine Option. Neben einer generellen Skepsis gegenüber dem Open Source-Umfeld (ist halt ein internationales Unternehmen) gibt es auch ein paar „richtige“ Gründe:m.fuchs hat geschrieben: Di 9. Feb 2021, 03:08 Ich vermute mal dass du das auch schon bedacht hast, aber zur Sicherheit: die Einführung von Lazarus im Unternehmen ist keine Option? Kostet den Arbeitgeber ja nichts und bringt ja auch eventuell Vorteile (Multiplattform z.B.).
- Es gibt diverse Tools, die in Delphi programmiert wurden und werden; da stecken etliche Mannstunden drin. Das zu portieren, würde einige Zeit kosten, die aber erstmal nichts bringt - nur um es dann mit Lazarus statt mit Delphi weiter entwickeln zu können? Kein unmittelbarer Nutzen.
- Bei einigen Tools handelt es sich um „zertifizierte“ Programme. D.h. die Programme selbst sind nicht zertifiert, aber es werden damit Zertifizierungsrechnungen durchgeführt und das heißt, der Zertifizierer hat sich diese Programme angesehen. Wie in dem Umfeld mit Open Source umzugehen ist, müsste geklärt werden.
- Tatsächlich gibt es einige Bibliotheken, die Features nutzen, die Free Pascal noch nicht bietet: z.B. generics (ich habe schon versucht, das nach Lazarus zu bringen, musste aber einsehen, dass das nicht geht - ich hoffe noch nicht).
- Und dann ist da das große „Problem“, an wen wendet man sich, wenn was nicht tut („blame game“). Wenn man ein Tool gekauft hat, das dann nicht tut, kann man jemanden außerhalb verantwortlich machen. Das ist bei kostenlosen, von keiner Firma vertriebenen Dingen schwierig
Das bleibt dann womöglich an mir hängen. Nö!
Und jetzt habe ich halt was mit Lazarus angefangen, dass ich eventuell auf Arbeit nutzen könnte. Das müsste dann halt in Delphi passieren. Hauptsächlich hieße das, z.B. die GUI-Forms neu bauen. Ok, dann muss da eben.
Ciao,
Photor
- af0815
- Lazarusforum e. V.
- Beiträge: 6771
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Lazarus-in-Delphi-Umwandlung
Kennne ich, ich habe Jahre bei einem ehemals holländischen Konzern gearbeitetphotor hat geschrieben: Di 9. Feb 2021, 20:42 Neben einer generellen Skepsis gegenüber dem Open Source-Umfeld (ist halt ein internationales Unternehmen)

Die Umstellung wird auch nicht, das eine raus, das eine rein gehen. Vor allen gibt es Komponenten, die es so nicht in Lazarus gibt. Das kann nur langsam Side By Side erfolgen. Und siehe oben, wenn man den Prozess auch ISO-Konform bekommt ist die Hürde mit den Zertifizierungen weg. Die hast du immer.photor hat geschrieben: Di 9. Feb 2021, 20:42 [*]Es gibt diverse Tools, die in Delphi programmiert wurden und werden; da stecken etliche Mannstunden drin. Das zu portieren, würde einige Zeit kosten, die aber erstmal nichts bringt - nur um es dann mit Lazarus statt mit Delphi weiter entwickeln zu können? Kein unmittelbarer Nutzen.
[*]Bei einigen Tools handelt es sich um „zertifizierte“ Programme. D.h. die Programme selbst sind nicht zertifiert, aber es werden damit Zertifizierungsrechnungen durchgeführt und das heißt, der Zertifizierer hat sich diese Programme angesehen. Wie in dem Umfeld mit Open Source umzugehen ist, müsste geklärt werden.
Kann ich nicht nachvollziehen. Generics sind schon lange in Lazarus (bin mir nicht sicher, ob nicht länger als in Delphi). Nur die Syntax unterscheidet sich.photor hat geschrieben: Di 9. Feb 2021, 20:42 [*]Tatsächlich gibt es einige Bibliotheken, die Features nutzen, die Free Pascal noch nicht bietet: z.B. generics (ich habe schon versucht, das nach Lazarus zu bringen, musste aber einsehen, dass das nicht geht - ich hoffe noch nicht).
Ich habe das Vergnügen gehabt mich mit diesem Thema bei (damals) Borland herumzuschlagen. Da kannst du Fehler finden, berichten und es passiert, wenn etwas so spät, das du bereits dutzende Workaround machen musste. Weil die Kommunikation und Bereitschaft für Fixes - sagen wir so - etwas sehr träge war. Da hat auch nur das Fragen in den Foren geholfen. Dort war die Antwort meist: Ja ist bekannt wird vielleicht gefixt, aber wann keine Ahnung. Mach das so und so und du kommst um den Bug herum. Das ist bei einem teuer gekauften IDE meiner Erfahrung nach viel schlimmer. Vor allen, du hast nicht einmal eine Möglichkeit das zu fixen. Weil du bekommst nicht alles an Source damit du alles fixen kannst. Ich bin da ein gebranntes Kind.photor hat geschrieben: Di 9. Feb 2021, 20:42 [*]Und dann ist da das große „Problem“, an wen wendet man sich, wenn was nicht tut („blame game“). Wenn man ein Tool gekauft hat, das dann nicht tut, kann man jemanden außerhalb verantwortlich machen. Das ist bei kostenlosen, von keiner Firma vertriebenen Dingen schwierigDas bleibt dann womöglich an mir hängen. Nö!
Hier bei Lazarus kann man im Notfall auch ein Bounty ausloben, wenn man wirklich was an der IDE braucht. Versuch das mal bei den gekauften Programm. Viel Spaß. Und die Diskussion mit den Komerziellen, das man unbedingt die neue IDE benötigt, weil erst dort sind ein paar Sachen gefixt. Lange Jahre gehabt. Nein sicher keine Alternative für mich mehr. Lazarus/FPC ist jetzt eingeführt, genauso wie GIT. Irgendeine Delphi version für fixing der wirklich alten Produkte. Nur fürchte ich, das kann ich mittlerweile gar nicht mehr bedienen

Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 955
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: Lazarus-in-Delphi-Umwandlung
Hast du hier konkrete Beispiele? Die Generic Unterstützung ist vor allem in 3.0.0 und 3.2.0 viel verbessert worden. Ein paar Sachen fehlen noch und ein paar Bugs gibt es auch noch, aber vor allem letzteres hat Delphi auch... und du musst natürlich für Kompatibilität mit der Delphi Syntax den Delphi-Modus einsetzen.photor hat geschrieben: Di 9. Feb 2021, 20:42
- Tatsächlich gibt es einige Bibliotheken, die Features nutzen, die Free Pascal noch nicht bietet: z.B. generics (ich habe schon versucht, das nach Lazarus zu bringen, musste aber einsehen, dass das nicht geht - ich hoffe noch nicht).
FPC Compiler Entwickler
- photor
- Beiträge: 512
- Registriert: Mo 24. Jan 2011, 21:38
- OS, Lazarus, FPC: Arch Linux: L 3.2 (Gtk2) FPC 3.2.2
- CPU-Target: 64Bit
Re: Lazarus-in-Delphi-Umwandlung
Also ich habe vor ca. 2Jahren probiert, Code mit generics von Delphi nach Lazarus zu portieren. Das hat damals nicht funktioniert (kann auch sein, dass ich nicht den richtigen Weg gefunden habe; es ließen sich jedenfalls nicht alle Konstrukte übernehmen - damit machte es wenig Sinn).PascalDragon hat geschrieben: Mi 10. Feb 2021, 09:32 Hast du hier konkrete Beispiele? Die Generic Unterstützung ist vor allem in 3.0.0 und 3.2.0 viel verbessert worden. Ein paar Sachen fehlen noch und ein paar Bugs gibt es auch noch, aber vor allem letzteres hat Delphi auch... und du musst natürlich für Kompatibilität mit der Delphi Syntax den Delphi-Modus einsetzen.
Ich werde mich aber im meinem Hobby-Lazarus-Projekt mit generics (unter Lazarus) beschäftigen- es muss ja immer was zu lernen geben - und dann sehen, ob und wie gut sich das nach Delphi übertragen lässt. Dann mal sehen.
Meine Ursprungsfrage hatte ja nur den Sinn, vorher zu fragen um nicht nachher (nach wochenlangem übertragen von Hand) zu hören: „Wieso machst du sowas? Da gibt es einen Menüeintrag, der das mit einem Klick kann.“
Ciao,
Photor
-
- Beiträge: 9
- Registriert: So 17. Apr 2022, 16:23
- OS, Lazarus, FPC: Win10, WinXP (Lazarus 2.2.0)
- CPU-Target: 64 Bit, (32 Bit)
- Wohnort: 30952 Ronnenberg
Re: Lazarus-in-Delphi-Umwandlung
Das Gute, das ich Lazarus zugute halten muss ist, dass nach einigen Schwierigkeiten (besonders das UTF-8 Chaos) fast allles funktioniert. Aber: schnarchend langsam! Es dauert gefühlt Minuten, bis Lazarus ein Verzeichnis mit 20 Files endlich durchbuchstabiert hat. Den Button, wie man es dazu bringen kann, die Windows-Grundfunktionen statt dem DIY von Lazarus (für Multiplattform, was ich nicht brauche) zu nutzen, habe ich noch nicht gefunden.
Deshalb habe ich angefangen, alles wieder rückwärts, erst in D. 5 und dann noch in D. 12 zu portieren, letzteres jetzt auch in x64. Alles läuft dort >10 mal schneller. Da ich aber inzwischen zwei verschiedene Versionen in L. habe, möchte ich gern auch die zweite noch in D. 12 umwandeln - möglichst ohne viel Nacharbeit - besonders mit dem lfm/dfm. Aber, wie ich den Beiträgen hier entnehme, ist die Hoffnung wohl vergeblich.
Deshalb habe ich angefangen, alles wieder rückwärts, erst in D. 5 und dann noch in D. 12 zu portieren, letzteres jetzt auch in x64. Alles läuft dort >10 mal schneller. Da ich aber inzwischen zwei verschiedene Versionen in L. habe, möchte ich gern auch die zweite noch in D. 12 umwandeln - möglichst ohne viel Nacharbeit - besonders mit dem lfm/dfm. Aber, wie ich den Beiträgen hier entnehme, ist die Hoffnung wohl vergeblich.
- greye
- Beiträge: 47
- Registriert: So 16. Feb 2014, 15:38
- OS, Lazarus, FPC: Debian/Fedora/Windows, Lazarus 3.6/4.0RC2, FPC 3.2.2
- CPU-Target: 64 Bit
Re: Lazarus-in-Delphi-Umwandlung
Das verstehe ich jetzt nicht. Aber ich bin auch nicht so in der Materie drin. Deshalb frage ich mal blöd, was soll da so schnarchend langsam sein? Die IDE? Oder das erzeugte Kompilat? Kann ich jetzt weder noch bestätigen.Jokra hat geschrieben: Fr 28. Mär 2025, 17:31Aber: schnarchend langsam! Es dauert gefühlt Minuten, bis Lazarus ein Verzeichnis mit 20 Files endlich durchbuchstabiert hat. Den Button, wie man es dazu bringen kann, die Windows-Grundfunktionen statt dem DIY von Lazarus (für Multiplattform, was ich nicht brauche) zu nutzen, habe ich noch nicht gefunden.
Weiter verstehe ich nicht, was Du mit DIY meinst. Ich bin bisher davon ausgegangen, daß Lazarus/FPC wie jede andere Programmierumgebung am Ende auf dem aufsetzt, was das Betriebssystem bietet. Was das jetzt mit der Fähigkeit, "überall" compiliert werden zu können zu tun hat, weiß ich grade auch nicht …
Vielleicht kannst Du das ja ein bisschen näher ausführen.
Danke schon mal.
42m