![]() |
globale Compiler Directive, wie {$DEFINE TEST}
Hallo,
habe ein kleines Problem mit dem Handling des Compilers. Ich möchte in meinem Programmen, die - schon aus Gründen der Übersichtlichkeit - aus verschiedenen Units bestehen, Compilerdirectiven global zum Beispiel für Testzwecke der Art:
Delphi-Quellcode:
für alle Units des Projects gültig, setzen !
{$DEFINE TEST}
Leider gelingt mir das stets nur für die Unit, in der die Directive steht. Wie kann man das mit einer einzigen Anweisung für das gesamte Project gültig definieren ? Gruß Gerd |
Re: globale Compiler Directive, wie {$DEFINE TEST}
Leider geht das in Delphi nicht. Als Workaround könntest du aber eine Include-Datei erstellen, die du in jeder Unit einfügst (via $INCLUDE bzw. $I). Dort stehen dann die Compilerdirektiven drin.
|
Re: globale Compiler Directive, wie {$DEFINE TEST}
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Chewie,
danke für Deinen Vorschlag, aber eigentlich kann ich nicht glauben, das es keine globalen Compilerschalter geben soll. Welchen Sinn macht dann unter <Projekt>,<Optionen>,<Verzeichnise,Bedingungen> [Delphi7] der vorletzte Eintrag, gemäß Anhang :?: . <Bedingungen> Definition: ? Noch 'ne Frage zu Deinem Vorschlag: Wie müßte die Include-Datei dann aufgebaubt sein, damit hieraus globale Compilerdirectiven der Art
Delphi-Quellcode:
an die Unit übergeben werden kann ? Hast Du das schonmal probiert ?
{$DEFINE TEST}
|
Re: globale Compiler Directive, wie {$DEFINE TEST}
ins Feld Definition unter Bedingung muss lediglich "Test" (ohne ") eingetragen werden... {$DEFINE } braucht es dort nicht...
weitere Einträge können mit Komma getrennt angefügt werden.... |
Re: globale Compiler Directive, wie {$DEFINE TEST}
Ups, da hab ich mich wohl geirrt. Ich hab das nicht selbst ausprobiert, ich meinte aber, ich hätte das wo gelesen. Tschuldige nochmal. :?
|
Re: globale Compiler Directive, wie {$DEFINE TEST}
Zitat:
(also gibt es die Symbole dann im gesamten Projekt...) |
Re: globale Compiler Directive, wie {$DEFINE TEST}
Vorsicht Compiler-Fall, :twisted:
jetzt habe ich's gelöst. Die Sache mit dem Eintrag im Project
Delphi-Quellcode:
hat einen Hacken.
<Projekt>,<Optionen>,<Verzeichnise,Bedingungen> [...] <Bedingungen>
Definition: Ändert an oben beschriebener Stelle einfach den Compiler-Schalter oder löscht den Schalter ganz(alle Compiler-Optionen gelöscht), dann muss das ganz Projekt neu compiliert werden ! :lol: Einfach nur F9 bringt keine Änderung, da der (in diesem Fall zu intelligente) :wall: Compiler keine Änderung in den Units feststellt, compiliert er auch nicht neu, sondern Start nur das Projekt. Zwingender Weise mit den alt-compilierten Programmverzweigungen. Habe zum Test 2 Unit der Art: Unit 1:
Delphi-Quellcode:
Unit 2:
{$ifDef TEST} ShowMessage('Start Unit1: TEST-Schalter');
{$ELSE} ShowMessage('Start Unit1: no Test'} {$EndIf}
Delphi-Quellcode:
Ändert man nur den Compiler-Schalter im Project wird die zu letzt compilierte Programm-Version gestart !
{$ifDef TEST} ShowMessage('Start Unit2: TEST-Schalter');
{$ELSE} ShowMessage('Start Unit2: no Test'} {$EndIf} Verändert man zusätzlich in einer Unit den Quelltext, wirken sich mit F9 die neu gesetzten Compiler-Option nur auf diese Unit aus. Deswegen nach Compiler-Option-Änderung:
Delphi-Quellcode:
Alle Projekte compilieren
|
Re: globale Compiler Directive, wie {$DEFINE TEST}
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 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