![]() |
Projekt bezogene Compiler Direktive
Hallo Leute
habe eine kleine Frage. Kann ich Projekt bezogene Compiler Direktive setzen? Wenn Ja wie in Gottesnamen, bin am verzweifeln. :wall: :wall: :wall: nicht über das Menu sondern als Code. :gruebel: schöne Grüsse Tau |
Re: Projekt bezogene Compiler Direktive
Hallo Tau,
was genau meinst du mit projektbezogene Compilerdirektive? Meinst du dass diese Direktive im ganzen Projekt gueltig sind? Ich arbeite in dem Fall mit einem include-File, welches saemtliche Kompilerkonstanten deklariert. Dieses include-File wird am Beginn jeder Unit mit {$INCLUDE ..} eingebunden, und fertig; wenn es das war was du meintest. Greetz alcaeus |
Re: Projekt bezogene Compiler Direktive
Hallo Alcaeus
ich habe einige Formulare die ich in verschiedenen Projekten einsetzen möchte. Das ich nicht immer alles mitnehmen muss habe ich mir gedacht, das es mit Compiler Direktiven für die einzelnen Projekte lösen könnte. Ich kriege es einfach nicht auf die Reihe. :wall: :wall: schöne Grüsse Tau |
Re: Projekt bezogene Compiler Direktive
Würde es nicht reichen sie oben in die DPR Datei zu schreiben?
|
Re: Projekt bezogene Compiler Direktive
Hallo GuenterS
ich denke schon aber WIE :?: schöne Grüsse Tau |
Re: Projekt bezogene Compiler Direktive
{$DEFINE xxx} ? oder hab ich jetzt was falsch verstanden?
|
Re: Projekt bezogene Compiler Direktive
Falsch. Solche Konstanten werden nicht uebertragen:
In der dpr-Datei:
Delphi-Quellcode:
In der Unit:
{$DEFINE FOO}
program SomeTest; //...
Delphi-Quellcode:
Und siehe da: kein Punkt, keine Message bei der Ausfuehrung. Was lernen wir daraus? Konstanten fuer conditional compiles muessen in jeder Unit neu deklariert werden (ist irgendwie auch logisch). Abhilfe schafft ein include-File welches nur in der jeweiligen Unit eingebunden werden muss. Wie man das am Besten mit deinem Vorhaben verbinden kann, weiss ich jetzt auch nicht :-?
{$IFDEF FOO}
ShowMessage('Foo'); {$ENDIF} Greetz alcaeus |
Re: Projekt bezogene Compiler Direktive
Hallo alcaeus
dein Ansatz habe ich auch schon ausprobiert. Es funktioniert nur dann wenn ich die Compiler Direktive von hand eintrage im Menu / Projekt / Optionen / Verzeichnisse / Bedingungen unter Definition dann funktioniert es auch. Bei einer Projekt Gruppe geht das aber leider nicht. Es ist irrsinnig mühsam immer zwischen den Projekten hin und her zu springen und zu Prüfen ob es Fehler gibt. schöne Grüsse Tau :hi: |
Re: Projekt bezogene Compiler Direktive
Hallo zusammen
warum werden eigentlich diese Projekt Optionen nicht irgend wo im Projekt gespeichert? kann mir vielleicht jemand das erklären. :gruebel: schöne Grüsse Tau |
Re: Projekt bezogene Compiler Direktive
Du gehst hin und machst ein (*$DEFINE Tau*) in irgendeiner Unit. Im Source hinschreiben !! Dann ist schon mal klar, daß das ein Tau-Programm werden soll. Tau will nämlich z.B. beim Programmstart, daß das Systemdatum abgefragt wird. Alle anderen wollen das nicht. Dann kann man mit Hilfe von (*$IFDEF Tau*) genau diese Version herstellen. Von der Hantiererei in der IDE halte ich sehr wenig. Für solche Fälle ist der Source besser geeignet !
|
Re: Projekt bezogene Compiler Direktive
Hallo Hansa
was bedeuteten eigentlich (* *) diese Zeichen im Bezug auf die Compiler Direktive :gruebel: ansonsten ist es genau das was alcaeus geschrieben hat. Zitat:
schöne Grüsse Tau |
Re: Projekt bezogene Compiler Direktive
Alcaeus hat ja auch Recht. Ich wollte nur darauf hinweisen, daß so was normalerweise im Source geregelt wird und nicht in der IDE ! Und das Statement mit Projekt usw. kam danach. Du willst ja wohl nicht im Notfall dein Delphi extra installieren´und dann noch an den Projektoptionen rumfummeln. {} und (**) klammern Kommentare. Aber nur, sofern hinter (* oder { direkt kein $ kommt !!
Guck Dir doch mal ein Beispiel an, z.B. das hier (Teil der USES - Liste) :
Delphi-Quellcode:
Das betrifft eine Frage, die auch hier schon des öfteren gestellt wurde. Aber egal. Das bedingte Symbol "Delphi6" wird in diesem Fall allerdings durch Delphi definiert. Es soll also ausgeschlossen werden, daß der verwendete Compiler Ärger macht. Es hindert Dich aber niemand dran dir selber solche Sachen mit (*$DEFINE blabla*) zu definieren und über (*$IFDEF blabla*) auszuwerten. Der Code bis zum (*$ENDIF*) wird nur dann ausgewertet werden, sofern vorher auch (*$DEFINE blabla*) steht ! Mehr ist das nicht. Man muß doch nur wissen, daß ein Compiler den Quelltext zeilenweise durchgeht und dementsprechend reagieren.
{$IFDEF Delphi6}
DesignIntf, DesignEditors, {$ELSE} DsgnIntf, {$ENDIF} P.S.: ich benutze aus purer Faulheit lieber das (* anstatt {. Es dauert mir zu lange das AltGr und das { zu suchen. Einen * finde ich zur Not auch auf einer verstellten Tastatur oder einer ausländisch beschrifteten. Die geschweiften Klammern eher nicht. 8) |
Re: Projekt bezogene Compiler Direktive
Hallo Hansa
Danke für die Erklärung :thumb: aber trotzdem hilft es mir bei meinem Problem nicht. schöne Grüsse Tau |
Re: Projekt bezogene Compiler Direktive
Dann bin ich mit meinem Latein am Ende und muß das tun, was ich nicht gerne mache : Gucke in der Delphi-Hilfe. :mrgreen:
|
Re: Projekt bezogene Compiler Direktive
Moin , noch Frühmoin,
das Problem war doch folgendes Zitat:
In dieses lege ich die mehrfach zu nutzenden Formularunits und -dateien und binde diese einfach in mehrere Projekte ein (mit Projekt hinzufügen). Oder war das jetzt zu einfach? Compilerdirektiven im Quelltext sieht natürlich chic aus, aber die verbrauchen immer viel Kaffee.... Grüße // Martin PS: Welche Units eingebunden werden ist in der dpr-Datei gespeichert und da könnte man sich auch mehrere anlegen... |
Re: Projekt bezogene Compiler Direktive
Zitat:
|
Re: Projekt bezogene Compiler Direktive
Also ich habe meistens eine einzelne Datei, die nur die Compilerdirektiven enthält - allerdings wirklich alle in der jeweilig korrekten Einstellung. Diese Datei wird dann in der .dpr einfach included. Hat den Vorteil, das ggf. von der IDE verstellte Direktiven mit meinem Include definitiv überschrieben werden.
Noch ein Vorteil: Ich habe eine inlude-Datei für Debug- und eine für Auslieferungs- Echsen. So kann ich per Batch-File die eine oder die andere Datei dorthin kopieren und habe meine gültige Konfiguration. |
Re: Projekt bezogene Compiler Direktive
Hallo Zusammen
Phoenix: wie ist so eine include Datei aufgebaut. Hast du vielleicht auch ein kleines Beispiel dafür, währe sehr nett. jim_raynor: ich weiß das in der *.cfg Datei die Daten drin sind aber sie werden vom Compiler nicht herangezogen weis aber nicht warum? gibt es irgendeinen Schalter den man umlegen muss? schöne Grüsse Tau |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 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