Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   BCB6: Syntax für Compileroption (https://www.delphipraxis.net/68644-bcb6-syntax-fuer-compileroption.html)

messie 3. Mai 2006 09:22


BCB6: Syntax für Compileroption
 
Hallo,

habe folgenden Code geerbt:

Code:
if (!DialogBox (hInstance,
      #if (SPRACHTYP==1)
        "DIALOG_SPRACHE1"
      #endif
      #if (SPRACHTYP==2)
        "DIALOG_SPRACHE2"
      #endif
      , NULL, lpfnSpracheProc))
      {
      // canceled
      FreeProcInstance(lpfnSpracheProc);
      return FALSE;
      }
    else
      FreeProcInstance(lpfnSpracheProc);
Die Compilerbedingungen im Aufruf der Dialogbox werden nicht akzeptiert, das Doppelkreuz wird als unzulässiges Zeichen gewertet.
Sind solche Bedingungn in Funktionsaufrufen nicht möglich?

Grüße, Messie

shmia 3. Mai 2006 12:25

Re: BCB6: Syntax für Compileroption
 
Versuche mal die Anweisungen für den Precompiler ohne Leerzeichen oder Tabs
zu schreiben:
Delphi-Quellcode:
if (!DialogBox (hInstance,
#if (SPRACHTYP==1)
        "DIALOG_SPRACHE1"
#elif (SPRACHTYP==2)
        "DIALOG_SPRACHE2"
#endif

messie 4. Mai 2006 08:55

Re: BCB6: Syntax für Compileroption
 
Zitat:

Zitat von shmia
Versuche mal die Anweisungen für den Precompiler ohne Leerzeichen oder Tabs
zu schreiben:
Delphi-Quellcode:
if (!DialogBox (hInstance,
#if (SPRACHTYP==1)
        "DIALOG_SPRACHE1"
#elif (SPRACHTYP==2)
        "DIALOG_SPRACHE2"
#endif

Hallo,

ich habe es nochmal auf unterschiedliche Weise geschrieben. Der Fehler verschwand erst, als ich die Anweisung über eine Variable vor den Funktionsaufruf gezogen habe. Es scheinen also Compileranweisungen in Funktionsaufrufen nicht zu klappen. Kann Delphi das eigentlich?

Grüße, Messie

shmia 4. Mai 2006 10:10

Re: BCB6: Syntax für Compileroption
 
Zitat:

Zitat von messie
Es scheinen also Compileranweisungen in Funktionsaufrufen nicht zu klappen. Kann Delphi das eigentlich?

Delphi ist in Bezug auf den Preprozessor (#ifdef, #ifndef) deutlich schwächer als C++.
Man kann nur prüfen, ob ein Symbol definiert ist oder nicht.
Ein Prüfung des Inhalt über #if SYMBOL=WERT ist nicht möglich.
Daher vermute ich, dass Delphi Compileranweisungen in Funktionsaufrufen nicht kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz