AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi, sehr umfangreiche Projekt-Ordner-Struktur, wie Dateien finden
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi, sehr umfangreiche Projekt-Ordner-Struktur, wie Dateien finden

Ein Thema von hoika · begonnen am 12. Feb 2019 · letzter Beitrag vom 16. Feb 2019
Antwort Antwort
Rollo62

Registriert seit: 15. Mär 2007
4.240 Beiträge
 
Delphi 12 Athens
 
#1

AW: Delphi, sehr umfangreiche Projekt-Ordner-Struktur, wie Dateien finden

  Alt 13. Feb 2019, 15:13
Ich separiere das möglichst, die MainForm lädt nur die Views per Runtime Code,
in der DPR wird quasi nur die Mainform gestartet, wo die Views reingeladen werden.

So hat jedes Unit seine Referenzen, und in der DPR ist fast nichts.
Wie schafft man es überhaupt 2000 Units in der DPR zu haben, ist das ein Konsolenprogramm
Oder kommen die Einträge von 3rd Party Komponenten ?
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.251 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi, sehr umfangreiche Projekt-Ordner-Struktur, wie Dateien finden

  Alt 14. Feb 2019, 07:08
Ich separiere das möglichst, die MainForm lädt nur die Views per Runtime Code,
in der DPR wird quasi nur die Mainform gestartet, wo die Views reingeladen werden.

So hat jedes Unit seine Referenzen, und in der DPR ist fast nichts.
Die DPR muss doch jede Unit usen, die deine Units benutzen wollen - außer jenen, die im Bibliothekspfad liegen.

Wenn der Bibliothkspfad keine projektspezifischen Units enthält, kommen in der DPR rasch einige Dateien zusammen.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Delphi, sehr umfangreiche Projekt-Ordner-Struktur, wie Dateien finden

  Alt 14. Feb 2019, 07:42
Hallo,
Zitat:
Die DPR muss doch jede Unit usen, die deine Units benutzen wollen
Eben nicht, warum soll ich alle 2.000 Units dort eintragen.
Wenn Unit25 in Unit22 benutzt wird und Unit22 in Unit4, und Unit4 in Unit_FrmMain
warum sollen alle UnitsX in die DPR und nicht nur Unit_FrmMain?
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.251 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi, sehr umfangreiche Projekt-Ordner-Struktur, wie Dateien finden

  Alt 14. Feb 2019, 07:55
Weil der Compiler den Pfad nicht auflösen kann. Entweder DPR oder Bibliothekspfad.

DPR
Delphi-Quellcode:
program Main;

uses
  SysUtils,
  uSingleInstance,
  uPath,
  Forms,
  fNUTSMain in 'Forms\fNUTSMain.pas{frmNUTSMain},
  cNUTSMain in 'Forms\cNUTSMain.pas',
  uNUTSConstants in 'Constants\uNUTSConstants.pas',
....
vs Unit:
Delphi-Quellcode:
unit uDaten;

interface

uses
  Classes, uLMDaten, uBaseXMLDBDaten;
..
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.240 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi, sehr umfangreiche Projekt-Ordner-Struktur, wie Dateien finden

  Alt 14. Feb 2019, 08:52
Nur wen man alle Forms automatisch erzeugen lässt, das mache ich eben nicht.
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.251 Beiträge
 
Delphi 12 Athens
 
#6

AW: Delphi, sehr umfangreiche Projekt-Ordner-Struktur, wie Dateien finden

  Alt 14. Feb 2019, 09:09
Aber da geht es nicht um das Erzeugen der Forms, die kämen uU noch dazu, wenn das wer so macht.

Hier geht es nur darum, ob die benutzen Units über die DPR (=einzeln auflisten) oder über den Bibliothekspfad (= NoGo für Projektdateien) gefunden werden.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Delphi, sehr umfangreiche Projekt-Ordner-Struktur, wie Dateien finden

  Alt 14. Feb 2019, 09:42
Hallo,
Zitat:
uNUTSConstants
Genau sowas meine ich.
Die Konstanten werden irgendwo gebraucht, aber nicht in der Projektdatei.
Ich mache das uses immer dort, wo die Unit benutzt wird.
Das zusätzlich in die dpr zu bringen, damit sie aufgrund des Ablage-Pfades gefunden wurde, finde ich halt nicht sehr zielführend.

Deshalb ja auch meine Frage, wie das andere machen.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.771 Beiträge
 
Delphi 12 Athens
 
#8

AW: Delphi, sehr umfangreiche Projekt-Ordner-Struktur, wie Dateien finden

  Alt 14. Feb 2019, 10:07
Nur wen man alle Forms automatisch erzeugen lässt, das mache ich eben nicht.
Wer macht das schon...

Ich habe sogar VCL-Projekte (FMX ist da ja flexibler), bei denen dynamisch das MainForm bestimmt wird - und das natürlich nicht in der DPR!

Trotzdem sind alle Projekt-spezifischen Units in der DPR aufgelistet. Insbesondere wenn man mit Frames, Datenmodulen und/oder Visual Inheritance arbeitet ist das in der Regel unverzichtbar.

Bisher habe ich noch jedes Projekt, bei dem ich irgendwie beteiligt war/bin so umgestellt. Alle(!) Entwickler haben danach ein wesentlich stabileres und angenehmeres Arbeiten mit der IDE bestätigt.

Ein für mich entscheidender Vorteil dieser Herangehensweise ist, daß ich genau kontrollieren (und such sofort sehen) kann, welche Units im Projekt benötigt werden. Der Projekt-Suchpfad wird auf das Nötigste beschränkt, damit nicht versehentlich eine Unit eingebunden wird, nur weil sie im Suchpfad gefunden wird. Die Projekt-Units sind in Unterverzeichnissen hierarchisch abgelegt, so daß ich in der Projektverwaltung eine übersichtliche Baumstruktur bekomme. Bis auf wenige Ausnahmen gibt es keine Units im Projekt-Verzeichnis selbst, sondern nur darunter. Aber diese Unterverzeichnisse tauchen auf keinen Fall in dem Projekt-Suchpfad auf. Der ist ausschließlich für die verwendeten Bibliotheken reserviert.

Ach ja, zum Projekt gehörige Units (in der DPR/DPROJ) sind über IDE-Insight (F6 oder Strg-<Punkt>) auffindbar. Units im Suchpfad in der Regel erstmal nicht.

Aber das muss jeder für sich entscheiden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.599 Beiträge
 
Delphi 7 Professional
 
#9

AW: Delphi, sehr umfangreiche Projekt-Ordner-Struktur, wie Dateien finden

  Alt 14. Feb 2019, 10:41
Also, ich hab mir vor kurzem angewöhnt, den Bibliothekspfad und den Suchpfad auf ein Minimum zu reduzieren.

Grund: Das Kompilieren dauerte idiotisch lange.

Mit dem FileMon von SysInternals hab' ich mal mitloggen lassen, was da so alles auf der Festplatte passiert.

Delphi sucht jede mit Uses irgendwo eingebundene Datei in allen Pfaden, die in Bibliotheks- und Suchpfad stehen, bis sie gefunden wurde. Zuerst wird überall nach der .pas gesucht, wenn die nicht gefunden wird, nochmal das Ganze mit der .dcu. Erst wenn das erfolglos ist, wird 'ne Fehlermeldung ausgegeben. Da kommen dann schnell etliche tausend erfolglose Dateizugriffe zustande.

Das Ergebnis des FileMon speichere ich mir dann in eine Datei und mit 'nem Pascal-Script für meinen Editor, werte ich diese Datei aus. Man kann gut die erfolgreichen Zugriffe des Compilers von den Fehlern untershcheiden. Für die erfolgreichen Zugriffe schreib' ich mir eine Zeile für die DPR. Die wird entsprechend ergänzt und enthält dann alles, was "irgendwo" gefunden wurde.

Was nicht gefunden wurde, wird mit 'ner rekursiven Dateisuche durch das Script "aufgestöbert" und kommt dann ebenfalls in die DPR. Das Script durchsucht nur von mir vorgegeben Verzeichnisse, so dass Bibliotheken und Fremdkomponenten nicht gefunden werden.

Sollte dann beim Kompilieren noch Sachen nicht gefunden werden, wird dafür entweder der Such- oder der Bibliothekspfad ergänzt oder die Datei ins Projekt aufgenommen, also die DPR ergänzt.

Die DPR kann schonmal recht groß werden, da sie aber für die gewöhnliche Programmierung eh kaum benötigt wird (wann braucht man dort schon irgendeine Programmlogik), ist das für die Entwicklung eigentlich eher egal.

Vorteil: Das Kompilieren wird deutlich schneller, bei sehr großen Projekten kann die Beschleunigung im Minutenbereich liegen, jedenfalls dann, wenn man mal ein Projekt neu erstellen lässt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:24 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