Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi {$define xyz} wird nicht erkannt (https://www.delphipraxis.net/138206-%7B%24define-xyz%7D-wird-nicht-erkannt.html)

Viktorii 5. Aug 2009 07:00


{$define xyz} wird nicht erkannt
 
Moin zusammen.

Ich habe eine Unit welche ich in mehreren Porjekten (Dlls) verwenden möchte. Nun kann es Projekte geben, die an einer Stelle einer Funktion anderen Code ausführen sollen.

Da habe ich mir gedacht, dass man einfach ein define macht, wenn man das möchte und ich die beiden Code-Varianten so in die Funktion schreibe:

Delphi-Quellcode:
{$ifdef xyz}
  ...
  ...
{$else}
  ...
  ...
{$endif}
Nur weiss ich nicht wo ich mein {$define xyz} hinsetzen muss. Ich habe es im Interface Teil einer Unit versucht, welche in diese Unit eingebunden wird und ich habe es mal in der Projekt Datei versucht.

Leider wird das define nicht erkannt. Soll heißen der else Zweig wird verwendet. Wo muss ich das define platzieren bzw. gibt es in den Projekt Optionen eine Möglichkeit ein globales define zu definieren? Hab bis jetzt nix gefunden....


Vielen Dank

aaaaaaaaaa_10 5. Aug 2009 07:11

Re: {$define xyz} wird nicht erkannt
 
Projekt -> Optionen -> Verzeichnisse/Bedingungen -> Bedingungen -> Definitionen

Bernhard Geyer 5. Aug 2009 07:30

Re: {$define xyz} wird nicht erkannt
 
Entweder Projektoptionen oder sogenannte Include-Dateien die überalle wo das Define benötigt wird eingebunden werden.

mleyen 5. Aug 2009 07:53

Re: {$define xyz} wird nicht erkannt
 
Kann mir einer sagen was ich falsch mache?
  • 1. Neue VCL-Formularanwendung
  • 2. In den interface-Teil der Unit1 folgendes schreiben:
    Delphi-Quellcode:
    {$IFDEF a}
    {$MESSAGE HINT 'Glückwunsch, a ist jetzt auch hier Definiert.'}
    {$ENDIF}
  • 3. "Unit2" hinzufügen
  • 4. In den interface-Teil der Unit2 folgendes schreiben
    Delphi-Quellcode:
    {$DEFINE a}
  • 5. In
    Zitat:

    Zitat von aaaaaaaaaa_10
    Projekt -> Optionen -> Verzeichnisse/Bedingungen -> Bedingungen -> Definitionen

    'Unit2' hinzufügen

Sobald ich jetzt Kompiliere kommt nicht die Meldung das a definiert ist. Warum?
Mit include-Dateien hab ich das bisher immer gemacht, davon will ich aber weg.

aaaaaaaaaa_10 5. Aug 2009 08:00

Re: {$define xyz} wird nicht erkannt
 
Solltest du nicht besser a als Unit2 in den Pfad schreiben ?!

worker 5. Aug 2009 08:03

Re: {$define xyz} wird nicht erkannt
 
Du musst ein komplettes Build machen (erzeugen), damit die Änderungen übernommen werden; einfaches Kompilieren genügt hier nicht.

Edit: das hat natürlich nichts damit zu tun, dass irgendetwas nicht gefunden wird.

mleyen 5. Aug 2009 08:31

Re: {$define xyz} wird nicht erkannt
 
Hmmm, schade funktioniert beides nicht, weder feste Pfade, noch neu erzeugen / neues Projekt. :pale:

aaaaaaaaaa_10 5. Aug 2009 08:46

Re: {$define xyz} wird nicht erkannt
 
was steht denn jetzt im pfad bei dir?

mleyen 5. Aug 2009 08:53

Re: {$define xyz} wird nicht erkannt
 
Such dir eins aus, alle schon getestet (neu erzeugt, dann neu kompiliert):
Code:
uConst
uConst;Debug
uConst.pas
uConst.pas;Debug
C:\Delphi\Projekte\G15\TaskMan\uConst
C:\Delphi\Projekte\G15\TaskMan\uConst;Debug
C:\Delphi\Projekte\G15\TaskMan\uConst.pas
C:\Delphi\Projekte\G15\TaskMan\uConst.pas;Debug
C:\Direktiven.txt
Edit:
Arrg, jetz hab ich es... Einfach die Defines in die 'Definitionsspalte' hinzufügen. (da kommen keine Dateien rein...)

aaaaaaaaaa_10 5. Aug 2009 09:00

Re: {$define xyz} wird nicht erkannt
 
a seh ich aber nirgends


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz