Autor Beitrag
MisterBum83
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 245
Erhaltene Danke: 2

WIN XP
Delphi 6
BeitragVerfasst: Mi 22.12.10 13:03 
Hallo zusammen,

besteht die Möglichkeit, eigen definierte Compilerschalter z.B. {$DEFINE testschalter}, die in einer INC-Datei vorhanden sind, im Quellcode über {$testschalter ON} bzw. {$testschalter OFF} ein- bzw. auszuschalten?

Wenn ich dies so mache meckert der Compiler immer mit:
ausblenden Quelltext
1:
Ungültige Compileranweisung: 'testschalter'					


Geht dies überhaupt mit eigenen C-Schaltern?

Gruß und Dank
MisterBum
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 22.12.10 13:15 
Das ist kein Schalter was du da definierst. Du definierst, ob die Direktive definiert ist oder nicht. Und mit {$undef testschalter} kannst du die Definition auch wieder löschen.
MisterBum83 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 245
Erhaltene Danke: 2

WIN XP
Delphi 6
BeitragVerfasst: Mi 22.12.10 13:20 
D.h. ich kann den "testschalter" so garnicht zur Laufzeit ein-/ausschalten?
Wie könnte ich es denn machen?

Gruß und Dank
MisterBum
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 22.12.10 13:28 
Na, wie ich es geschrieben habe: Definieren oder die Definition wieder entfernen. Wo ist das Problem? :nixweiss:
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Mi 22.12.10 13:29 
einen COMPILERschalter zur LAUFZEIT schalten?
Fällt dir was auf?
MisterBum83 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 245
Erhaltene Danke: 2

WIN XP
Delphi 6
BeitragVerfasst: Mi 22.12.10 13:33 
user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
einen COMPILERschalter zur LAUFZEIT schalten?
Fällt dir was auf?


OK, es geht nicht.
Aber was bedeuten dann diese Anweisungen:
{$testschalter ON} bzw. {$testschalter OFF}

Wo müsste ich diesen testschalter anlegen oder deklarieren, damit ich ein- bzw. ausschalten kann?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 22.12.10 13:50 
Moin!

Compiler-Schalter sind Dinge, die hart im Compiler verdrahtet sind, sowas kann man nicht selbst "nachbauen". Du kannst aber eigene Symbole definieren und die Existenz dann abfragen und darauf reagieren, z.B. so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
{$DEFINE DEBUG_BUILD}

{$IFDEF DEBUG_BUILD}
  SomeValue := 1// zum Testen 1 nehmen
{$ELSE}
  SomeValue := 2// das soll dann in der Produktiv-Version genutzt werden
{$ENDIF}
Wenn du dann irgendwann ein Release-Build machst, dann schreibst du beim Define stattdessen:
ausblenden Delphi-Quelltext
1:
{$DEFINE RELEASE_BUILD}					
Dann wird das Symbol nicht mehr gefunden. :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 22.12.10 20:57 
Oder man setzt einfach einen Punkt davor und deaktiviert so den Compilerschalter.