Lazarus-in-Delphi-Umwandlung

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Antworten
Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Lazarus-in-Delphi-Umwandlung

Beitrag von photor »

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

Benutzeravatar
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

Beitrag von Winni »

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

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus-in-Delphi-Umwandlung

Beitrag von wp_xyz »

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.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
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

Beitrag von m.fuchs »

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.
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.).
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: Lazarus-in-Delphi-Umwandlung

Beitrag von photor »

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:
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.).
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:
  • 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 :roll: Das bleibt dann womöglich an mir hängen. Nö!
Und ehrlich, ich mag auch nicht mehr missionieren. Ich bin froh, dass ich mit Lazarus meine Ideen umsetzen kann und ab und zu probiere ich halt mal was aus. Dazu hole ich auch hin und wieder mal Delphi-Code rüber.

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

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
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

Beitrag von af0815 »

photor hat geschrieben:
Di 9. Feb 2021, 20:42
Neben einer generellen Skepsis gegenüber dem Open Source-Umfeld (ist halt ein internationales Unternehmen)
Kennne ich, ich habe Jahre bei einem ehemals holländischen Konzern gearbeitet :-) Die sind nicht generell gegen Open-Source. Nur erklären muss man es, wie das Buildsystem stabil gehalten wird. Und wie man es ISO-Zertifizieren kann. Wenn man das kann so verschwinden die Gründe.
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.
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
[*]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).
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
[*]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 :roll: Das bleibt dann womöglich an mir hängen. Nö!
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.

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).

PascalDragon
Beiträge: 825
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

Beitrag von PascalDragon »

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).
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.
FPC Compiler Entwickler

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: Lazarus-in-Delphi-Umwandlung

Beitrag von photor »

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.
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).

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

Antworten