AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Compiler Directive zur Laufzeit abfragen?
Thema durchsuchen
Ansicht
Themen-Optionen

Compiler Directive zur Laufzeit abfragen?

Ein Thema von moelski · begonnen am 14. Sep 2010 · letzter Beitrag vom 15. Sep 2010
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.338 Beiträge
 
Delphi 12 Athens
 
#1

AW: Compiler Directive zur Laufzeit abfragen?

  Alt 15. Sep 2010, 06:02
Diese Compiler-Direktiven gelten nur innerhalb einer Unit.
Global geht von innerhalb nicht, außer man gibt die über den Compiler rein (z.B. über die Projektoptionen des Inlinecompilers oder über einen entsprechenden Parameter des Komandozeilencompilers).

Eine alternative wäre noch eine Include-Datei, welche man überall einbindet.

PS: Bei der Variante mit dem Kompilerschalter über die Projektoptionen und den Parameter, muß man alles manuell komplett neu kompilieren, da der Compiler dieses nur in neu kompilierten Dateien aktualisiert.
Wurde eine Datei nicht verändert, dann "optimiert" Delphi dieses weg, da dann die Datei nicht automatisch neu kompiliert wird, da Delphi nicht automatisch auf "extern" geänderte Kompilerschalter reagiert.

PS: Über die Variante mit der Konstante und dem {$IF kann man auch über Uses-Grenzen gehen. (das nutze ich in meinem himXML, um zu prüfen ob die Units im selben Modus kompiliert wurden, wenn man die Comilerschalter umgestellt hat)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (15. Sep 2010 um 07:26 Uhr)
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Compiler Directive zur Laufzeit abfragen?

  Alt 15. Sep 2010, 06:34
@himitsu :

Im Project Source klappt es nicht mit der Konstanten. Aber wenn ich das in eine Unit packe die ich eh überall eingebungen habe, dann klappts.

Die Exe wird ja nach Schalter 2Kb größer oder eben nicht Man muss natürlich komplett neu compilieren, aber das ist ja kein wirkliches Problem.

Vielen Dank für den Tip !!!
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.359 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Compiler Directive zur Laufzeit abfragen?

  Alt 15. Sep 2010, 07:25
Hi,

du hast doch D2010. Da kann man doch wunderschön in der Projektverwaltung eine neue Build-Konfiguration anlegen.
Dort kannst du unter Bedingungen dein DEF eintragen.
Und wenn du noch ein anderes Ausgabe - Verzeichnis dafür definierst, liegen die EXE'n auch noch in einem betreffenden Verzeichnis.

Das finde ich IMHO viel einfacher und übersichtlicher.

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.338 Beiträge
 
Delphi 12 Athens
 
#4

AW: Compiler Directive zur Laufzeit abfragen?

  Alt 15. Sep 2010, 07:35
Das finde ich IMHO viel einfacher und übersichtlicher.
Das nutze ich schon seit Jahren, nur daß ich da "früher" einfach mehrere Projektdateien genutzt habe.

Nur daß man eben nie vergessan darf unbedingt mit Shift+F9 die Anwendungen neu zu erzeugen, da diese Bedingung sonst (eventuell) nicht überall eingebunden wird und dann EXEn entstechen, welche mit "gemischen" Optionen kompiliert wurden (eine Unit so und 'ne Andere so).
Weißt du was das für Probleme beim Fehlersuchen macht, wenn man dieses Problem dabei vergißt?

Darum hatte ich mir zusätzlich noch die Konstanten als Gegenprobe integriert, welches beim Compilieren warnt, wenn etwas nicht stimmt, bzw. wenn dabei unterschiedliche Einstellungen erkannt wurden.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (15. Sep 2010 um 07:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.359 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Compiler Directive zur Laufzeit abfragen?

  Alt 15. Sep 2010, 07:38
Nur daß man dann nie vergessan darf unbedingt mit Shift+F9 die Anwendungen neu zu erzeugen, da diese Bedingung sonst (eventuell) nicht überall eingebunden wird und dann EXEn entstechen, welche mit "gemischen" Optionen kompiliert wurden (eine Unit so und 'ne Andere so).

Darum hatte ich mir zusätzlich noch die Konstanten als Gegenprobe integriert, welches beim Compilieren warnt, wenn etwas nicht stimmt, bzw. wenn dabei unterschiedliche Einstellungen erkannt wurden.
Oder man definiert ein eigenes DCU - Ausgabeverzeichnis...

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.338 Beiträge
 
Delphi 12 Athens
 
#6

AW: Compiler Directive zur Laufzeit abfragen?

  Alt 15. Sep 2010, 07:44
Oder man definiert ein eigenes DCU - Ausgabeverzeichnis...
OK, das wäre auch eine Möglichkeit.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Compiler Directive zur Laufzeit abfragen?

  Alt 15. Sep 2010, 11:46
Zitat:
Dort kannst du unter Bedingungen dein DEF eintragen.
Und das ist dann das gleiche wie {$Define ... ?

Gilt das dann Projektweit?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010

Geändert von moelski (15. Sep 2010 um 11:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.338 Beiträge
 
Delphi 12 Athens
 
#8

AW: Compiler Directive zur Laufzeit abfragen?

  Alt 15. Sep 2010, 11:56
Ja, also für alle Units, welche "neu" kompiliert werden.

Shift+F9 also nicht vergessen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Compiler Directive zur Laufzeit abfragen?

  Alt 15. Sep 2010, 11:57
Die Build-Config gilt projektweit.

Beispiel z.B. bei einem Projekt von mir (siehe Anhang). Da sind vier Build-Configs drin:

- Debug: Exe mit Debug-Infos und erweiterte Fehlerbehandlung. Lokalzugriff auf DB
- Netzwerk: Siehe Debug, nur eben mit Netzwerkdatenbank
- Release: Erzeugt das Release-Programm mit netzwerkfähigem Client
- ReleaseEmbed: Erzeugt das Release-Programm mit ohne netzwerkfähigem Client
Angehängte Grafiken
Dateityp: jpg buildconfig.jpg (11,0 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#10

AW: Compiler Directive zur Laufzeit abfragen?

  Alt 15. Sep 2010, 12:02
Werde ich gleich mal testen.

Da machen die Build Config gleich mehr Sinn
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:19 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