Entwickler-Ecke
Sonstiges (Delphi) - Bedingte Kompilierung für Demoversion
Ares - Mi 08.03.06 13:02
Titel: Bedingte Kompilierung für Demoversion
Hallo!
Ich möchte gerne die bedingte Kompilierung nutzen, um aus einer Vollversion ein Demo zu erstellen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| {$DEFINE vollversion} ... {$IFDEF vollversion} machwas; {$ELSE} showMessage('Die Funktion gibts nur in der Vollversion'); {$ENDIF} |
Das ganze funktioniert aber scheinbar nur, wenn das Define in der selben Unit steht, wie die IF Abfragen. Wenn {$DEFINE vollversion} in Unit A steht, die Unit B über die Uses-Klausel einbindet, ist {$IFDEF vollversion} in Unit B false...
Es gibt jedoch ziemlich viele Units, in denen Unterschiedungen zwischen Demo und Vollversion stattfinden müsste. Muss ich in jeder Unit {$DEFINE vollversion} angeben oder kann ich das irgendwie Zentral lösen?
Besten Dank
Ares
Christian S. - Mi 08.03.06 13:07
Hallo!
Das Problem hatte ich letzens auch, weil ich sonst nie mit Compilerschaltern arbeite. Die Lösung (dank an Uwe ;-)) ist: Definiere den Schalter in den Projektoptionen unter "Verzeichnisse / Bedingungen" und dort "Definitionen". Dann ist es im gesamten Projekt gültig.
Grüße
Christian
Ares - Mi 08.03.06 13:14
Ah, vielen Dank. Das funktioniert wunderbar :-)
jaenicke - Mi 08.03.06 13:18
Wie ich das bei meinen Programmen mache:
Einfach eine Programm.inc Datei mit den Schaltern machen, und diese dann über {$I Programm.inc} direkt nach Unit XY; einbinden.
Der Vorteil ist, dass man nicht ständig in die Projektoptionen muss, wenn man etwas umschalten möchte, und dass man diese Datei auch aus Batch-Skripten erstellen kann, um beide Versionen aus einem Skript erzeugen zu können.
Und man muss ja nur einmal in jede Datei die Include-Zeile schreiben, sodass es auch kaum Mühe macht...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!