Delphi in Lazarus-Projekt umwandeln

Für Fragen von Einsteigern und Programmieranfängern...
Benutzeravatar
stoffel_hessen
Beiträge: 66
Registriert: Sa 18. Jun 2022, 12:27
OS, Lazarus, FPC: Windows 11 (Version 2.2.2, FPC 3.2.2)
CPU-Target: x86 64Bit
Wohnort: Riedstadt

Delphi in Lazarus-Projekt umwandeln

Beitrag von stoffel_hessen »

Hallo Gemeinde,

ich bin neu hier, habe in den letzte 10 Jahren immer wieder mal etwas in Delphi XE2 programmiert, bin aber kein gelernter Entwickler.
Da sich Embacadero aus meiner Sicht nicht sehr Kundenfreundlich verhält (ich habe eine XE2 Starter Lizenz aus dem Jahr 2011, welche ich nun auf einem neuen PC nicht mehr aktiviert bekomme, da die Anzahl der Aktivierungen überschritten wurde, und Embacadero dies auch ablehnt, obwohl dies in den Vergangenen Jahren immer mal wieder gemacht wurde), möchte ich meine 5-6 Projekte nun auf Lazarus umziehen.
Nun mal zu meinem Problem, wenn ich in Lazarus, die Option "Delphi- in Lazarus Projekt umwandeln..." verwende, wird das Formular nicht konvertiert, es ist dann nicht vorhanden.
Wenn ich dann versuche das Formular mit "DFM- in LFM-Datei umwandeln" umzuwandeln, bekomme ich eine Fehlermeldung "... hat eine fehlerhafte Syntax", was kann ich hier machen?

Ich habe auch schon gesucht, aber leider im Forum nichts gefunden, für einen entsprechenden Hinweis wäre ich sehr Dankbar.

Gruß Christopher
Zuletzt geändert von stoffel_hessen am Di 26. Jul 2022, 09:57, insgesamt 2-mal geändert.
Gruß Christopher

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

Re: Delphi in Lazarus-Projekt umwandeln

Beitrag von wp_xyz »

Ich würde dir dringend raten, dir zunächst ein lauffähiges Delphi zu besorgen. Ohne testen zu können, wie sich ein Formular "eigentlich" verhält, ist die Konvertierung ein Glücksspiel. Hol dir die Community Edition. Die ist für Hobby-Programmierer kostenlos (man darf sogar kommerzielle Software schreiben, aber nur bis zu einem Jahresumsatz von ein paar Tausend EUR). Die Lizenz läuft ein Jahr, aber man kann danach problemlos eine neue anfordern. Die CE ist etwas hinter der aktuellen Verkaufsversion, aber ansonsten kaum eingeschränkt, zumindest ist mir bei meinen Projekten nichts aufgefallen. Ich glaube gelesen zu haben, dass ihr Umfang der Professional-Ausgabe entspricht.

Ganz wichtig: Kopiere dir das zu konvertierende Projekt an einen sicheren Ort, es geht zu leicht, dass man sonst nach einer erfolglosen Konvertierung gar nichts mehr hat!

Der Konverter "DFM- in LFM-Datei umwandeln" ist nur für prähistorische Formulare aus dem letzten Jahrhundert gedacht, als dfm-Dateien noch in einem binären Format gespeichert wurden. Standardmäßig speichert Delphi, ich glaube seit Version 6, im Text-Format. Öffne die dfm-Datei in einem Texteditor: wenn du lesbaren Text findest, ist alles in Ordnung und diese Konvertierung ist nicht nötig. Wenn nicht, und die Umwandlung mit diesem Lazarus-Tool nicht funktioniert, öffne das Formular in Delphi, Rechts-klick auf dem Formular und markierte den Eintrag "Text-DFM" im Kontext-Menü, speichern.

Die eigentliche Konvertierung eines Projekts geschieht unter "Delphi- in Lazarus-Projekt" umwandeln; "Delphi- in Lazarus-Unit umwandeln" nimmt sich nur eine einzelne Unit vor. Es werden jeweils viele Umwandlungen vorgenommen, Unit-Namen angepasst, fehlende Properties weggelassen usw. Allerdings ist mir das ganze zu unübersichtlich, und ich mache die Konvertierungen in der Regel von Hand. Ich habe darüber schon ein paar Mal geschrieben, z.B. hier: https://forum.lazarus.freepascal.org/in ... #msg331273.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Delphi in Lazarus-Projekt umwandeln

Beitrag von Mathias »

Hol dir die Community Edition. Die ist für Hobby-Programmierer kostenlos (man darf sogar kommerzielle Software schreiben, aber nur bis zu einem Jahresumsatz von ein paar Tausend EUR)
Das habe ich gar nicht gewusst, das sowas angeboten wird.
Ist das neu, das sie sowas wieder anbieten ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Delphi in Lazarus-Projekt umwandeln

Beitrag von wp_xyz »

Die gibt es schon seit ein paar Jahren und folgt mit geringem Abstand der aktuellen Version. Es ist natürlich keine Garantie, dass sie nicht irgendwann auf die Idee kommen "Nö, die Hobbyprogrammierer sollen sich nun eine richtige Lizenz kaufen". Die Community Edition (CE) wäre in diesem Fall nur bis zum Ende der Lizenz-Periode nutzbar. Also, für ernsthafte Arbeit wäre das nichts, aber nur zum Ausprobieren, oder als Hilfe beim Portieren alter Projekte oder Komponenten nach Lazarus ist das eine Super-Möglichkeit.

Kann gleich mal berichten, was passiert, wenn die 1-jährige CE-Lizenz abgelaufen ist, was heute bei mir der Fall war. Also: Statt Delphi öffnet der Lizenz-Experte und will eine neue Seriennummer/Lizenz - das ganze sieht relativ kompliziert aus, weil es offenbar auch bei den Kaufversionen verschiedene Lizenz-Typen gibt. Nach mehreren Fehlversuchen habe ich dann einfach das nicht mehr verwendbare Delphi 10.3.3. deinstalliert und mir von der Embarcadero-Seite die aktuelle Community Edition geholt (v1.0.4.2). Man muss sich mit Namen, E-Mail, PLZ, Ort, Telefon-Nr (! - aber die Gültigkeit wird anscheinend nicht geprüft) anmelden und dann kommt eine Mail mit einer Seriennummer, und kann damit 1 Jahr lang weiterarbeiten, und muss dann halt dieses Procedere wiederholen.

P.S.
Statt Neuinstallation hätte ich mich wahrscheinlich auch auf meinem Embarcadero-Account einloggen und eine neue Seriennummer für 10.3.3 anfordern können. Aber ich wollte die aktuelle CE-Version (10.4.2) und hätte die nutzlose alte Version ohnehin deinstallieren müssen (Denn mehrere CE-Versionen auf demselben Gerät vertragen sich nicht - wie schön haben wir es bei Lazarus, wo man via Sekundärinstallation beliebig viele Version haben kann).

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Delphi in Lazarus-Projekt umwandeln

Beitrag von Mathias »

Dann doch lieber Lazarus.😏
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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: Delphi in Lazarus-Projekt umwandeln

Beitrag von Winni »

Hi!

Mit den "kostenlos" Angeboten von Delphi hab ich auch verbrannte Finger:

2006 gab es das arg eingeschrankte "Turbo Delphi" kostenlos, die "Professional" Version für 500 $.
War wohl kein großer Erfolg. Es gab keine weiteren Versionen und 2009 wurde dieser Vertriebsstrang inkl. Support komplett eingestellt.

Das kommt dabei raus, wenn die Entscheidungen im Hause Embarcardero nur noch wegen der Finanzen entschieden werden.

Da weiss man bei Lazarus/fpc was man hat. Und worauf man sich verlassen kann.

Winni

Benutzeravatar
stoffel_hessen
Beiträge: 66
Registriert: Sa 18. Jun 2022, 12:27
OS, Lazarus, FPC: Windows 11 (Version 2.2.2, FPC 3.2.2)
CPU-Target: x86 64Bit
Wohnort: Riedstadt

Re: Delphi in Lazarus-Projekt umwandeln

Beitrag von stoffel_hessen »

Erst mal Danke für eure Unterstützung, ich werde mir das mit der CE anschauen und dann versuchen mein Projekt auf Lazarus umzuziehen.
Gruß Christopher

hum4n0id3
Beiträge: 301
Registriert: So 5. Mai 2019, 15:23

Re: Delphi in Lazarus-Projekt umwandeln

Beitrag von hum4n0id3 »

Ich musste mir eine neue E-Mail Adresse zulegen und einen neuen Account registrieren, wo ich einen neuen Schlüssel bekam, damit ich die CE weiter nutzen konnte. Irgendwann habe ich es dann ganz gelassen. Meine Pascal-Neugier befriedigt auch Lazarus ganz gut :lol:

Ich habe aber keine Pascal Projekte, daher andere Entscheidungswege. Nur fairweise erwähnt.

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

Re: Delphi in Lazarus-Projekt umwandeln

Beitrag von wp_xyz »

Winni hat geschrieben:
Di 21. Jun 2022, 17:54
Da weiss man bei Lazarus/fpc was man hat. Und worauf man sich verlassen kann.
Das ist außer Frage. Aber es gibt Leute, die haben früher ein - vielleicht großes - Projekt in Delphi geschrieben und wollen das nach Lazarus umziehen. Oder denke, an die großen Komponenten-Sammlungen, die ganze Torry.net-Seite uvm, was alles Material für Delphi enthält und unter Lazarus manchmal schmerzlich vermisst wird. Das ohne eine lauffähige Delphi-Version zu versuchen, ist ein Ding der Unmöglichkeit, weil man sonst nicht erkennen kann, wie das Projekt/die Komponente sich eigentlich verhält. Daher nehme ich zumindest die kleine Unannehmlichkeit bei der Registrierung gerne in Kauf.

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: Delphi in Lazarus-Projekt umwandeln

Beitrag von Winni »

Hi!

Torry und die Menge an Komponenten hin und her - ich habe seit Delphi 1 nie Komponenten installiert bei denen ich den Source nicht hatte, In weiser Voraussicht. Damit man es portieren kann.

Winni

Benutzeravatar
stoffel_hessen
Beiträge: 66
Registriert: Sa 18. Jun 2022, 12:27
OS, Lazarus, FPC: Windows 11 (Version 2.2.2, FPC 3.2.2)
CPU-Target: x86 64Bit
Wohnort: Riedstadt

Re: Delphi in Lazarus-Projekt umwandeln

Beitrag von stoffel_hessen »

Hallo zusammen,

2 kleiner Projekte habe ich nun umgestellt bekommen.
Bei einem etwas größeren habe ich das Problem, das ich es zwar auch umstellen konnte und auch compillieren.
Wenn ich die Anwendung aber starte, kommt eine Fehlermeldung "Error reading BT_Button.WordWrap: Unknown property: WordWrap"
Bei BT_Button handelt es sich um ein TButton-Objekt, in Delphi war hier der Haken WordWrap gesetzt, in Lazarus gibt es diesen aber nicht und ich finde auch die Stelle nicht, wo ich es löschen kann, habe auch schon mal den Text des Buttons geändert, so das kein Zeilenumbruch mehr erfolgen muss.
Für einen Hinweis wäre ich sehr dankbar.

Gruß Christopher
Gruß Christopher

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: Delphi in Lazarus-Projekt umwandeln

Beitrag von af0815 »

stoffel_hessen hat geschrieben:
Mi 22. Jun 2022, 16:01
Bei BT_Button handelt es sich um ein TButton-Objekt, in Delphi war hier der Haken WordWrap gesetzt, in Lazarus gibt es diesen aber nicht und ich finde auch die Stelle nicht, wo ich es löschen kann,
Bei so Problemen, die nicht allzu invarsiv sind, sollte man sich die lfm/dfm mit einem Texteditor ansehen. Dort kann man dann die nicht vorhandene Eigenschaft finden und löschen. Klarerweise immer ein Backup machen (oder mit Sourcecontroltools arbeiten).
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Delphi in Lazarus-Projekt umwandeln

Beitrag von Soner »

Du kannst auch die Komponenten der Formulare bei Delphiformdesigner in die Zwischenablage kopieren und bei Lazarusformdesigner einfügen. Man muss nur die Events neu zuweisen, falls man hat, oder man erstellt vorher Event-Funktionen, dann kopiert es. Bei kleineren Projekten klappt es gut.
Getestet mit BDS 2006.

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: Delphi in Lazarus-Projekt umwandeln

Beitrag von Winni »

Hi!

Lade mal die zu der Unit gehörende gleichnamige Datei mit dem Suffix lfm.

Suche hier nach dem BT_Button
In den folgenden Zeilen muss irgendwo die Property WordWrap auftauchen
Genau diese Zeile löschen - und nix sonst verändern
Speichern
Project neu laden.

Nun sollte der Fehler entsorgt sein

Winni

Benutzeravatar
stoffel_hessen
Beiträge: 66
Registriert: Sa 18. Jun 2022, 12:27
OS, Lazarus, FPC: Windows 11 (Version 2.2.2, FPC 3.2.2)
CPU-Target: x86 64Bit
Wohnort: Riedstadt

Re: Delphi in Lazarus-Projekt umwandeln

Beitrag von stoffel_hessen »

Winni hat geschrieben:
Mi 22. Jun 2022, 17:58
Hi!

Lade mal die zu der Unit gehörende gleichnamige Datei mit dem Suffix lfm.

Suche hier nach dem BT_Button
In den folgenden Zeilen muss irgendwo die Property WordWrap auftauchen
Genau diese Zeile löschen - und nix sonst verändern
Speichern
Project neu laden.

Nun sollte der Fehler entsorgt sein

Winni
Danke für eure Unterstützung, hat geklappt
Gruß Christopher

Antworten