Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#10

AW: Debug Console oder ähnlich

  Alt 22. Okt 2010, 23:26
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

Geändert von EWeiss (22. Okt 2010 um 23:45 Uhr)
  Mit Zitat antworten Zitat