Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   $(...)-Variablen in den Projektoptionen (https://www.delphipraxis.net/166030-%24-variablen-den-projektoptionen.html)

SirTwist 26. Jan 2012 13:20

$(...)-Variablen in den Projektoptionen
 
Hallo,

in den Projektoptionen kann man ja die 'normalen' Umgebungsvariablen benutzen sowie die Delphi-eigenen Umgebungsvariablen (also solche, die über Tools->Optionen->Umgebungsvariablen überschrieben wurden.

Darüber hinaus gibt es aber ... ich nenn sie mal dynamische Umgebungsvariablen wie z.B. $(Config) oder $(Plattform). Gibt es hierzu irgendeine Übersicht, welche Variablen zur Verfügung stehen?

Ich brauche eigentlich eine Variable, die mir Home meines aktuellen Projektes nennt, also das Verzeichnis, in dem die .dpr/.dproj-Datei liegt, oder noch besser, die übergeordnete .groupproj-Datei.

Letztendlich möchte ich das Ausgabeverzeichnis aller Projektbinaries sammeln unter <ProjektDir>\Executables\$(Config)\$(Plattform), also sowas wie <ProjektDir>\Executables\Release\Win32.

Freue mich über jede Hilfe :-) Danke!

Grüße,
SirTwist

himitsu 26. Jan 2012 13:25

AW: $(...)-Variablen in den Projektoptionen
 
Eine Liste kenn ich jetzt nicht.
In den Tools-Konfigurationen könnten einige der Makros eventuell auch außerhalb als Variable vorhanden sein. :gruebel:

PS: $(xxx) ist nur eine andere Darestellung von %xxx%

Bjoerk 26. Jan 2012 13:44

AW: $(...)-Variablen in den Projektoptionen
 
Könnte sein, daß er bei "$(OUTPUTPATH)" immer das dpr Verz. nimmt, weiß ich jetzt aber nicht ganz genau. Wenn du mit dem dcc32 compilierst, kannst du alle Verz. angeben.

himitsu 26. Jan 2012 14:08

AW: $(...)-Variablen in den Projektoptionen
 
Zitat:

Zitat von Bjoerk (Beitrag 1147780)
Könnte sein, daß er bei "$(OUTPUTPATH)" immer das dpr Verz. nimmt, weiß ich jetzt aber nicht ganz genau.

Testen kann man sowas ganz einfach.

Einfach bei Menü\Start\Parameter > Parameter angeben und nachsehn was rauskommt

Delphi-Quellcode:
program Project1;

uses Windows;

begin
  MessageBox(0, GetCommandLine, 'CommandLine / Parameter', 0);
end.

SirTwist 26. Jan 2012 14:36

AW: $(...)-Variablen in den Projektoptionen
 
Vielen Dank für die Antworten soweit, nur leider ....

Himitsu: Dein Tipp sieht klasse aus, nur funktioniert leider nicht:
Code:
Count: 1
Str 0: H:\Develop\Tests\Parameters\Debug\Win32\TestParameters.exe
Str 1: $(Config)
Commandline: "H:\Develop\Tests\Parameters\Debug\Win32\TestParameters.exe" $(Config)
Und auch die "festen" Variablen wie z.b. $(BDSCOMMONDIR) werden nicht aufgelöst. Die Online-Hilfe gibt auch nichts her.

Das einzige was ich gefunden habe, ist ein Eintrag unter stackoverflow.com:
Zitat:

We may get a list of variables by turn on "Diagnostic" in Verbosity setting. The $(Config) variable appears in Diagnostic output when compiling a project in Delphi IDE.
Ich habe natürlich ein deutsches Delphi und finde diese Optionen nicht. Unter "Hinweise und Warnungen" ist eigentlich so ziemlich alles auf "True" gesetzt, was man sich vorstellen kann, aber ich finde keine Variablenübersicht in der compiler-Ausgabe...

Uwe Raabe 26. Jan 2012 15:03

AW: $(...)-Variablen in den Projektoptionen
 
Zitat:

Zitat von SirTwist (Beitrag 1147789)
Das einzige was ich gefunden habe, ist ein Eintrag unter stackoverflow.com:
Zitat:

We may get a list of variables by turn on "Diagnostic" in Verbosity setting. The $(Config) variable appears in Diagnostic output when compiling a project in Delphi IDE.
Ich habe natürlich ein deutsches Delphi und finde diese Optionen nicht. Unter "Hinweise und Warnungen" ist eigentlich so ziemlich alles auf "True" gesetzt, was man sich vorstellen kann, aber ich finde keine Variablenübersicht in der compiler-Ausgabe...

Im Menü: Tools - Optionen, dann unter Umgebungsoptionen, rechts unter Compilieren "Ausführlichkeit".

himitsu 26. Jan 2012 17:06

AW: $(...)-Variablen in den Projektoptionen
 
Das ist doch besch***.
Ich dachte die ersetzen wenigsten an der selben Stelle in allen Strings diese Parameter. :wall: :cry:

SirTwist 26. Jan 2012 19:18

AW: $(...)-Variablen in den Projektoptionen
 
Uwe: danke für den Hinweis! Mit "Diagnostic" bekommt man auch wirklich alle Variablen, und *juchu* $(ProjectDir) ist genau das, was ich haben möchte.

Dumm nur: wenn ich in den Projektoptionen dann das Ausgabeverzeichnis auf "$(ProjectDir)\Output" setze, hängt sich Delphi beim Start des Compilierens komplett auf. "Keine Rückmeldung" und die IDE muss komplett abgeschossen werden.

Ich teste weiter...

einbeliebigername 26. Jan 2012 19:46

AW: $(...)-Variablen in den Projektoptionen
 
Hallo,

wieso nimmst du nicht als Ausgabeverzeichnis ".\Output" oder "..\Output"? Das würde bewirken, dass relativ zur Projektdatei (.dpr/.dproj) die Ausgabedatei abgelegt wird. Habe ich so in allen Projekten, wo EXE oder DLL raus kommt, eingestellt und hat bis jetzt immer funktioniert (Delphi 7, 2007, XE und XE2).

einbeliebigername.

himitsu 26. Jan 2012 20:19

AW: $(...)-Variablen in den Projektoptionen
 
Bis XE finde ich
Delphi-Quellcode:
.\$(Config)
ganz nett, wobei man auch schon für XE2 vorsorgen könnte, mit
Delphi-Quellcode:
.\$(Config)\$(Platform)
, was vermutlich sogar voreingestellt ist.
Oder wie wäre es mit
Delphi-Quellcode:
.\_bin\$(Platform)_$(Config)
für EXE und DLL, sowie
Delphi-Quellcode:
.\_dcu\$(Platform)_$(Config)
.
(kombinierte Verzeichnisse finde ich da etwas übersichtlicher, da die nutzlose Zwischenebene entfällt)

Uwe Raabe 26. Jan 2012 21:01

AW: $(...)-Variablen in den Projektoptionen
 
Zitat:

Zitat von himitsu (Beitrag 1147846)
wobei man auch schon für XE2 vorsorgen könnte, mit
Delphi-Quellcode:
.\$(Config)\$(Plattform)

Mit $(Platform) kommst du etwas weiter - $(Plattform) wird von XE2 durch einen Leerstring ersetzt :wink:

SirTwist 27. Jan 2012 07:43

AW: $(...)-Variablen in den Projektoptionen
 
Guten Morgen zusammen,

so, nochmals Danke für die Tipps. Natürlich ist der Hinweis von "einbeliebigername" richtig, dass ich einfach mit ".\" arbeiten kann. Ich wollte ursprünglich ja eigentlich das Verzeichnis der "groupprj"-Datei haben, dafür scheint es aber keine Variable zu geben. Wenn ich nun also als Konvention festlege, dass jedes Einzelprojekt immer genau eine Ebene unter der Projektgruppe liegt, dann kann ich "..\" nutzen. Nun denn...

himitsu:
$(Config)\$(Platform) funktioniert auch schon mit XE, bzw. ist dort bereits voreingestellt. Aber die Idee, das auf ($Platform)_$(Config) zu ändern, ist klasse. Direkt umgesetzt.

Grüße,
SirTwist

t2000 19. Aug 2021 16:20

AW: $(...)-Variablen in den Projektoptionen
 
Uraltes Thema

Aber ich such gerade verzweifelt nach weiteren Variablen. Z.B. für den Projektnamen

Gibt es denn nach wie vor keine Liste über alle verfügbaren Systemnamen?

Bekannt ist mir:
$(Config)
$(Platform)

gesehen habe ich schon mal
$(ETM)

Uwe Raabe 19. Aug 2021 16:37

AW: $(...)-Variablen in den Projektoptionen
 
Zitat:

Zitat von t2000 (Beitrag 1493728)
Aber ich such gerade verzweifelt nach weiteren Variablen. Z.B. für den Projektnamen

Versuch mal $(SanitizedProjectName)

Delphi.Narium 19. Aug 2021 16:56

AW: $(...)-Variablen in den Projektoptionen
 
Wo wird $(BDS) etc definiert?

t2000 19. Aug 2021 17:00

AW: $(...)-Variablen in den Projektoptionen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1493729)
Zitat:

Zitat von t2000 (Beitrag 1493728)
Aber ich such gerade verzweifelt nach weiteren Variablen. Z.B. für den Projektnamen

Versuch mal $(SanitizedProjectName)


Nein, geht leider nicht.

himitsu 19. Aug 2021 17:29

AW: $(...)-Variablen in den Projektoptionen
 
Es kommt auch drauf an WO du diese Variablen verwenden willst.

Erstmal gehen hier alle Umgebungsvariablen, auch jene, welche in der IDE zusätzlich definiert wurden. (siehe Tools/Optionen)
und dann schau z.B. mal ins AfterBuild-Script ... da im Editor findest du auch eine kleine Liste

t2000 19. Aug 2021 17:51

AW: $(...)-Variablen in den Projektoptionen
 
Das Problem kommt eigentlich nur daher, weil wir auch TMS Web Core Anwendungen in unserem Ausgabeverzeichnis verwalten wollen.
"Normale" exe-Dateien kann man ja gut erkennen :zwinker:
Aber bei den Web-Dateien handelt es sich um sehr viele Dateien pro "Programm".
Und dieses soll eben in eigene Unterordner.

Da wir schon ein eigenes kleines Programm zum patchen von .dproj Dateien haben um die Versionierung einfach zu setzen, hätten wir hier auch die Verzeichnisse für die Ausgabe automatisieren können.

Mit AfterBuild scripts habe ich bisher noch nicht gearbeitet. Müsste mich da erstmal einlesen, was das ist und wie das geht.

Uwe Raabe 19. Aug 2021 20:57

AW: $(...)-Variablen in den Projektoptionen
 
Zitat:

Zitat von t2000 (Beitrag 1493732)
Zitat:

Zitat von Uwe Raabe (Beitrag 1493729)
Versuch mal $(SanitizedProjectName)


Nein, geht leider nicht.

Wo genau verwendest du die Variable denn?

himitsu 19. Aug 2021 23:37

AW: $(...)-Variablen in den Projektoptionen
 
Zitat:

Mit AfterBuild scripts habe ich bisher noch nicht gearbeitet. Müsste mich da erstmal einlesen, was das ist und wie das geht.
Es ging jetzt erstmal vor allem um den Editor ... der hat eine Vervollständigungsfunktion/Liste und zeigt mehrere Variablen an.

Ob jetz AfterBuild oder PreBuild, kommt drauf an, was man machen will.
z.B. eine RES-Datei verändern sollte man vorher, bevor sie einkompiliert wird,
aber eine Ressource in der fertigen EXE kann man nur nachher bearbeiten, nachdem die EXE erstellt wurde.

Außerdem sind nicht alle Variablen überall verfügbar, z.B. für den Ausgabepfad, oder in Suchpfaden, kann man nicht alles nutzen, was im AfterBuildScript verfügbar wäre.

t2000 20. Aug 2021 08:25

AW: $(...)-Variablen in den Projektoptionen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von Uwe Raabe (Beitrag 1493742)
Zitat:

Zitat von t2000 (Beitrag 1493732)
Zitat:

Zitat von Uwe Raabe (Beitrag 1493729)
Versuch mal $(SanitizedProjectName)


Nein, geht leider nicht.

Wo genau verwendest du die Variable denn?

In den Optionen: "Ausgabepfad"

Siehe Bilder:

Da wo jetzt der feste Name steht, sollte eigentlich die Variable hin

Uwe Raabe 20. Aug 2021 08:35

AW: $(...)-Variablen in den Projektoptionen
 
OK, wenn du $(SanitizedProjectName) in der Root-Konfiguration verwenden willst, solltest du meinen Project Magician einsetzen und dort für das Projekt die Normalize-Option aktivieren. Die sorgt dafür, dass diese Variable dann auch schon im Root bekannt ist. Ohne dieses sollte die Variable aber in einer der untergeordneten Konfigurationen bereits jetzt funktionieren.

t2000 20. Aug 2021 08:46

AW: $(...)-Variablen in den Projektoptionen
 
Vielen Dank.

Ich werde den Project Magician einmal installieren. Hatte mir den noch nie wirklich angesehen (obwhl ich wusste, dass es da was gab. SelectivDebugging habe ich ja auch)
Testen kann ich aber erst nächste Woche, da ich gleich los muss.

VG Thomas


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.

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