Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Projekt-Gruppe mit "globaler" Unit (https://www.delphipraxis.net/183999-projekt-gruppe-mit-globaler-unit.html)

Helmi 18. Feb 2015 15:47

Projekt-Gruppe mit "globaler" Unit
 
Hallo,

ich hab eine Projekt-Gruppe mit einem Projekt und 3 weiteren Projekten die eine BPL erzeugen.

Nun brauch ich einen Aufzeichnungstyp in allen Projekten.

Kann man eine Unit in einer Projekt-Gruppe definieren, die in alle Unterprojekte eingebunden werden kann,
die aber nur innerhalb der Projekt-Gruppe existiert?

Sir Rufo 18. Feb 2015 16:15

AW: Projekt-Gruppe mit "globaler" Unit
 
Gibt es bei XE2 schon die Optionsgruppen?

Damit definierst du dir eine Einstellung, die z.B. auch nur einen Suchpfad beinhaltet. Schon übernehmen alle Projekte mit dieser Optionsgruppe diese Einstellung.

Damit binde ich die externen Bibliotheken ein, die ich nicht als Packages o.ä. installiert haben kann/möchte/will.

Beispiel SuperObject:

In den Tools/Optionen/Umgebungsvariablen habe ich eine Variable angelegt:
Code:
USRLIB = <Pfad zum UserLib-Verzeichnis>
Die Quellen liegen unter
Code:
<Pfad zum UserLib-Verzeichnis>\ext\superobject
Und das SuperObject.optset beinhaltet folgendes
XML-Code:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <DCC_UnitSearchPath>$(USRLIB)\ext\superobject;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
    </PropertyGroup>
    <ProjectExtensions>
        <Borland.Personality>Delphi.Personality.12</Borland.Personality>
        <Borland.ProjectType>OptionSet</Borland.ProjectType>
        <BorlandProject>
            <Delphi.Personality/>
        </BorlandProject>
        <ProjectFileVersion>12</ProjectFileVersion>
    </ProjectExtensions>
</Project>
Praktischerweise liegt diese SuperObject.optset auch genau in dem superobject Ordner. Ein Rechtsklick auf die Buildkonfigurationen / Optionsgruppen anwenden und die Optionsgruppe ausgewählt fügt ganz automatisch die SuperObject-Quellen in meinen Suchpfad ein und ich kann die Units dort benutzen.

Sehr geschmeidig ist das für Bibliotheken, die auf mehrere Verzeichnisse aufgeteilt sind (z.B. Spring4D), denn dieses konfiguriert man nur einmalig (in der Optionsgruppe) und der Drops ist gelutscht.

Uwe Raabe 18. Feb 2015 16:16

AW: Projekt-Gruppe mit "globaler" Unit
 
Zitat:

Zitat von Helmi (Beitrag 1290407)
Kann man eine Unit in einer Projekt-Gruppe definieren, die in alle Unterprojekte eingebunden werden kann,
die aber nur innerhalb der Projekt-Gruppe existiert?

Nein, aber du kannst die Unit in einem deiner Projekte anlegen und dann im Projektmanager per Drag'n'Drop in die anderen Projekte "kopieren". Die Unit existiert dann zwar immer noch nur einmal auf der Platte, wird aber trotzdem in den einzelnen Projekten verwendet.

Kannst du mal genau erläutern, was du eigentlich beabsichtigst? Die Anforderung eine Unit in mehreren Projekten zu verwenden ist ja nichts Ungewöhnliches.

Helmi 18. Feb 2015 16:42

AW: Projekt-Gruppe mit "globaler" Unit
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Uwe Raabe (Beitrag 1290421)
Kannst du mal genau erläutern, was du eigentlich beabsichtigst? Die Anforderung eine Unit in mehreren Projekten zu verwenden ist ja nichts Ungewöhnliches.

Ich habe diese Projektgruppe und möchte in jedem Projekt eine Typ-Definition haben/abfragen
Anhang 42584

Delphi-Quellcode:
TKomm_Datentyp   = (kd_nil, kd_Bit, kd_Byte, kd_Word, kd_Int, kd_DWord, kd_DInt, kd_Real);

Sir Rufo 18. Feb 2015 16:46

AW: Projekt-Gruppe mit "globaler" Unit
 
Pack diese Typdefinition in eine Unit, lege diese an einer zentralen Stelle in dem Gruppenordner ab und trage bei jedem Projekt diesen Pfad in den Suchpfad ein.

Alternativ s.o. mit den Optionsgruppen, die kannst du dann zentral anpassen.

Uwe Raabe 18. Feb 2015 16:57

AW: Projekt-Gruppe mit "globaler" Unit
 
Oder du legst diese Gruppe in einem der Projekte an und fügst sie dann den anderen Projekten hinzu (wie bereits gesagt). Das hat den Vorteil, daß man zum einen keinen Suchpfad braucht und sofort sieht, daß diese Unit zu den einzelne Projekten gehört, und CodeInsight damit auch etwas stabiler läuft.

Helmi 18. Feb 2015 17:11

AW: Projekt-Gruppe mit "globaler" Unit
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1290434)
Oder du legst diese Gruppe in einem der Projekte an und fügst sie dann den anderen Projekten hinzu (wie bereits gesagt). Das hat den Vorteil, daß man zum einen keinen Suchpfad braucht und sofort sieht, daß diese Unit zu den einzelne Projekten gehört, und CodeInsight damit auch etwas stabiler läuft.

genau so hab ich es jetzt gemacht

Danke für den Tip


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 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