Konvertierung Delphi -> Lazarus

Für Fragen rund um die Ide und zum Debugger
Antworten
Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1423
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Konvertierung Delphi -> Lazarus

Beitrag von fliegermichl »

Hallo zusammen,

ich versuche gerade ein größeres Delphiprojekt (Delphi5) nach Lazarus zu konvertieren. Das hat zunächst auch mal geklappt.

Jetzt habe ich eine unit, welche abhängig von AppType unterschiedliche Units einbindet.

Code: Alles auswählen

uses unit1, unit2,
{$ifdef console}
 unitc3, unitc4
{$else}
 unitw3, unitw4
{$endif}
;
und obwohl in den Projekteinstellungen -> Konfiguration und Ziele -> win32GUI Application angehakt ist und eine Dateisystemweite Suche nach {$AppType kein Ergebnis brachte, ist scheinbar console definiert.
Wie kann ich herausfinden, an welcher Stelle das passiert?

LG Michael

PascalDragon
Beiträge: 823
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: Konvertierung Delphi -> Lazarus

Beitrag von PascalDragon »

Der AppType ist in FPC, wenn er nicht explizit gesetzt ist, Console und nicht GUI (im Gegensatz zu Delphi). Der AppType wird normal im Hauptprojekt gesetzt.

Beachte bitte jedoch, dass es eine schlechte Idee ist in einer weiteren Unit, die nicht das Hauptprojekt ist, zu unterscheiden, ob die Anwendung Console oder GUI ist, da die Units nicht neukompiliert werden, wenn du nur den AppType änderst. Ändere deine Codestruktur besser so, dass du die Änderungen über das Hauptprojekt steuern kannst.
FPC Compiler Entwickler

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1423
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Konvertierung Delphi -> Lazarus

Beitrag von fliegermichl »

Hmm Danke erstmal für die Info.

Ich habe jetzt mal eine Datei dtconfig.inc erstellt, die am Anfang in jeder Unit eingebunden wird. Wenn ich da {$AppType GUI} reinschreibe, bleibt in der betroffenen Unit console dennoch aktiv. Wenn ich in dtconfig.inc explizit {$undef console} reinschreibe, dann funktioniert es.

So habe ich zumindest erst mal eine Lösung für mein Problem (wenn es denn auch nicht ganz sauber ist).

Danke und Grüße
Michael

Antworten