![]() |
AW: Delphi und FPC compiler problem
Zitat:
|
AW: Delphi und FPC compiler problem
Zitat:
Dank für diesen Beitrag! |
AW: Delphi und FPC compiler problem
Zitat:
Man macht ja extra ein IF/IFDEF drumrum, damit der Teil darin nicht beachtet wird, wenn man schon weiß, dass es das nicht gibt. Wenn der Compiler/Parser nun dennoch da rein sieht, dann ist es sein Problem. Wenn er es sich dennoch ansehen will/muß, und er von einem vorherrigen IF/IFDEF bereits weiß, dass der Teil garnicht benutzt wird, dann sollte er zumindestens die "Prüfbedingungung" bis zum abschließenden } ignorieren. Ich vermute es geht darauf hinaus, seitdem Delphi IFEND und ENDIF als "gleich" betrachtet, bzw. krankhaft zwanghaft versucht ALLES auf Eines umzubiegen, und seitdem auch die Dinge drinen parsen muß, um das "richtige" Ende zu finden. Früher war es einfach, alles vom IFDEF bis zum "nächsten" ENDIF oder ELSE und IF/IFEND wurde ignoriert. Ging ja ursprünglich auch nicht anders, weil damals die "alten" Compiler $IF noch garnicht kannten.
Delphi-Quellcode:
{$IFDEF ConditionalDefines}
{$IF ...} {$IFEND} {$ENDIF} |
AW: Delphi und FPC compiler problem
Die erste Reaktion war diese Schreibweise, die ja auch schon von Frank in die Runde geworfen wurde:
Delphi-Quellcode:
{$IFDEF FPC}
{$IF Declared(FPC_VERSION) and (FPC_VERSION >= 3)} {$DEFINE UNICODE} {$IFEND} {$ENDIF FPC} |
AW: Delphi und FPC compiler problem
Zitat:
@Uwe Raabe Ok das finde ich dann sogar eine elegante Lösung für das Problem. |
AW: Delphi und FPC compiler problem
Zitat:
![]() |
AW: Delphi und FPC compiler problem
Witzig, eigentlich nutzte ich gern AND und OR, weil dutzendfach verschachteltete IFDEFs nicht grade schön anzusehen sind und man oft genug garnicht mehr erkennt, was wann wo ist.
z.B. viele mehrfach verschachtelte Dinge aus den INCs von Indy, JEDI und Co., lassen sich oftmals durch wenige IF+ELSEIF ersetzen. Und jetzt ist es plötzlich die Lösung für etwas, was mir so bisher noch garnicht aufgefallen war. :shock: |
AW: Delphi und FPC compiler problem
Zitat:
![]()
Delphi-Quellcode:
ändert leider nichts.
{$LEGACYIFEND ON}
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz