Falls ich Dich richtig verstanden habe brauchst Du keine Kompilerschalter sondern Parametrisierte Aufrufe die dann verschieden verzweigen?
In meiner Anwendung wird geprüft ob diese
Unit hier TRACEMODE = 1 als Parameter für die bedingte compilierung übergibt
Wird dieser nicht gefunden wird auch nichts ins Logbuch eingetragen
So schützt sich diese selbst vor unnötigen zugriffen von außen.
Ich habe in meiner
DLL unter Parameter "TRACEMODE = 1" eingegeben eigentlich sollte der Compiler das erkennen
während der laufzeit und darauf hin entscheiden ob er den Codeteil freigibt also verwendet oder nicht.
Vorrausgesetzt die Anwendung läuft dann werden die Daten in das Fenster geschickt und dort ausgewertet.
in vb sieht mein compiler schalter so aus!
#If TRACEMODE = 1 Then
#Else
#End If
und steht genau an der gleichen stelle wie hier im Code übergeben.
Wie gesagt habe mich mit den Schaltern in Delphi noch nicht beschäftigt.
Nochmal ein ganz kleines Beispiel!
Zitat:
Der #If...Then...#Else-Block kann benutzt werden, um ein Symbol zu testen und entsprechende Anweisung einzukompilieren oder aus dem Kompilat herauszuhalten.
Daneben kann es auch zum Auskommentieren großer Quelltext-Passagen verwendet werden.
Code:
Option Explicit
#Const MitHinein = True
Public Sub Main
Debug.Print "Dieser Text ist immer zu sehen"
#If MitHinein Then
Debug.Print "Dieser Text ist nur zu sehen, wenn " & _
"'MitHinein' entsprechend gesetzt wurde."
#End If
#If False Then
Debug.Print "Dieser Text ist nie zu sehen."
#End If
Debug.Print "Das war es schon."
End Sub
So ist es veranschaulicht was bzw.. wofür die Schalter stehen.
Ist der Schalter unter Parameter im Debugger Dialog gesetzt muss der ganze obere Teil des Quelltextes aktiv sein
Andernfalls werden die beiden unteren proceduren verwendet die dann nichts tun...
gruss Emil