2016-07-20 18 views
2

Ich habe ein Delphi 7-Projekt, in dem ich gemeinsame Dateien, die in anderen Projekten verwendet werden, in Suchpfad einfüge. Verschiedene Versionen meines Projekts müssen verschiedene Versionen der gemeinsamen Dateien verwenden. Ich weiß, dass es möglich ist, Windows-Umgebungsvariablen zu verwenden, aber ist es möglich, einen variablen Suchpfad innerhalb der .pas-Datei zu definieren? Alternativ bin ich offen für eine Umgehungsmethode.Wie definiert man eine benutzerdefinierte Variable für den Delphi 7 Suchpfad im Quellcode?

Zum Beispiel:

const Version = '100'; 

enter image description here

+0

Es wird nichts im Quellcode tun. Es muss für die IDE verfügbar sein. Sie können es der .dpr-Datei hinzufügen, mit einem vollständigen oder relativen Pfad (Projekt-> Zum Projekt hinzufügen) oder durch manuelle Bearbeitung der .dpr-Datei (Projekt-> Quelle anzeigen). Warum kannst du es nicht einfach in die Optionen eines jeden Projekts einfügen? –

+1

Gerüche wie Sie sollten dies mit Versionskontrolle tun .... –

+0

Wenn Sie die Versionsnummer in den Code-Dateinamen einbeziehen, können Sie in der Usage-Klausel Ihrer Pas-Datei darauf verweisen und eine bestimmte Version in jedem Projekt verwenden. –

Antwort

2

Ich weiß es möglich ist, Windows-Umgebungsvariablen

zu verwenden oder das eigenen Umgebungsvariablen des IDE, so dass Sie nicht haben Chaos mit der Windows-Umgebung. Aber im Allgemeinen kann das, was Sie zu tun versuchen, nur mit Umgebungsvariablen geschehen.

ist es möglich, einen variablen Suchpfad innerhalb der .pas-Datei zu definieren?

Nein, ist es nicht. Eine solche Variable muss auf der OS/IDE-Ebene definiert werden, nicht auf der Codeschicht.

+0

Danke für Ihren Vorschlag. Ich stelle nur fest, dass die Umgebungsvariablen der IDE global sind, daher kann ich keinen anderen Wert für die Umgebungsvariable für verschiedene Versionen meines Projekts zuweisen. Ich muss den Wert der Umgebungsvariablen jedes Mal zurücksetzen, wenn ich eine andere Version meines Projekts lade. Denken Sie, dass es eine Lösung für dieses Problem gibt? – Joshua

1

Das werde ich beschreiben ist eine mögliche Arbeit, wenn Sie nicht zu viel fragen.

Angenommen, die Ordner, die verschiedene Versionen enthalten, unterschieden nach Datum oder was Sie wollen. Zum Beispiel: Project_14-07-21, Project_15-07-21, Project_16-07-21.

Innerhalb dieser Ordner können Sie Ihre gemeinsamen Ordner mit Dateien mit verschiedenen Versionen ablegen. Zum Beispiel in jeder: Project_16-07-21\Common

An diesem Punkt, wenn Sie Informationen von Abschnitten aufgeben [Versionsinfo] und [Version Info Keys] in dof Datei, Alles, was getan werden muss, ändert sich die Datei cfg e dof der Projekt.

Wie? In zwei Worten: relativer Pfad.

In Datei dof Suche SearchPath Änderung in ähnlicher Weise auf diese:

SearchPath = .. \ DCU; DCU; .. \ Common; Gemeinsame; $ (DELPHI) \ Lib; $ (DELPHI) \ JEDI \ JVCL \ lib \ d7; $ (DELPHI) \ JEDI \ JVCL \ laufen; $ (DELPHI) \ JEDI \ jcl \ jcl \ source \ common

in Datei cfg Änderung in ähnlicher Weise auf diese :

-U ".. \ DCU"; "DCU"; ".. \ Gemeinsame"; "Gemeinsame" ; "C: \ Programme (x86) \ Borland \ Delphi7 \ Lib"; "C: \ Programme (x86) \ Borland \ Delphi7 \ Source \ Indy" -I ".. \ DCU"; "DCU"; ".. \ Common"; "Common"; "C: \ Programme (x86) \ Borland \ Delphi7 \ Lib"; "C: \ Programme (x86) \ Borland \ Delphi7 \ Source \ Indy" -R " .. \ DCU ";" DCU ";" ..\ Common "" Allgemein "" C: \ Program Files (x86) \ Borland \ Delphi7 \ Lib "" C: \ Program Files (x86) \ Borland \ Delphi7 \ Source \ Indy“

mit die notwendigen Änderungen, die sie an der Absicht nützlich sind.

„Common“ beziehen sich auf die internen Ordner „Common“ verschiedener Versionen Projekte.

statt „.. \ Common“ können Sie denken, wie schwer Dateien des Keine Änderung in irgendeiner Version

offensichtlich ändert sich auch die Datei dpr entsprechend den Pfaden

zum Beispiel: .... JclSysUtils in‘.. \ Common \ JclSysUtils.pas', .... uTest in 'Common \ uTest.pas';

{$ R .. \ Common \ Project.tlb} {R $ .. \ Common \ Project.res}

An dieser Stelle können Sie alle automatisieren, aber sehr dies alles über Batch.

Als eine Höflichkeit zum Beispiel: Ich habe Batch-Datei, die Kompilierung durch Ziehen der dpr Datei realisiert. das sind ihre Namen, mit denen wir den Zweck verstehen: CC_IDE_Off.bat, CC_IDE_On.bat, CC_Debug_OnOff.bat. Mit diesen Batch, die funktionieren, indem ich die Datei cfg e dof (von debug oder nicht) in Ordner der Datei dpr kopieren, können Sie komplette Projekte kompilieren, OHNE KEINE KOMPONENTEN IN die IDE zu installieren.

+0

@Ivan Dank dir die anmutigen Änderungen. Gut gemacht. Ich habe es wirklich geschätzt. –

+0

als Ergebnis der Müdigkeit habe ich einige Details weggelassen: in den Pfaden fehlt "Common" ecc. –