![]() |
AW: Dateien umbennen - welches Namensformat?
Hierzu eine abschließende Frage:
Utils.Logging.pas: - enthält Funktionen und Prozeduren betreffend "Logging" - Funktionen und Prozeduren von Utils.Logging können von anderen Units verwendet werden, indem man die Utils.Logging-Unit in weitere Units einbindet Types.Logging.pas: - enthält Record-s, Class-es, Enums etc, welche nur in Utils.Logging verwendet werden - wird in Utils.Logging.pas eingebunden, sonst nirgendwo Ist das richtig so von der Logik oder stelle ich mir gerade ein Bein und habe irgendetwas noch nicht verstanden? Sinn soll es ja u.a. sein, dass man so wenig Abhängigkeiten zu anderen Units wie möglich hat nehme ich an? Falls dem so ist, darf man denn dann überhaupt in Utils.Logging.pas weitere Units einbinden? Angenommen ich habe eine Unit mit Variablen die programmweit verfügbar sein sollen und eine davon benötige ich in Utils.Loggins.pas. Wie sähe das konkret aus? Hier ist das, was ich bisher verstanden habe
Delphi-Quellcode:
P.S.: der Code würde -50 von 100 Punkten erhalten, wenn es um den Sinn und die Funktionalität ginge.
unit Types.Logging;
interface uses System.Classes, System.SysUtils, ...; type TBeispielEnum = (test, blub); implementation end. ///////////////////////////////////////////////// unit Utils.Logging; interface uses Types.Logging, // darf Types.Logging verwenden für eventuelle spätere Zugriffe auf TBeispielEnum (?) System.Classes, System.SysUtils, ...; type TLogging= class private // public class function Test(iiiii: Integer): Integer; static; end; implementation // uses .... ; // <= andere Units des Programms einbinden, ist das erlaubt? class function TLogging.Test(iiiii: Integer): Integer; begin Result := iiiii + 1; end; end. //////////////////////////////////////// showmessage( IntToStr( TLogging.Test(1) ) ); |
AW: Dateien umbennen - welches Namensformat?
Ich würde es ja andersrum machen.
Logging.Utils.pas Logging.Types.pas Erstmal sind so die zusammengehörigen Dateien auch im Dateisystem zusammen und bei Codevervollständigung und Unitsuche nach "Log", "Logging." usw. sieht man alles, was zum Logging gehört oder was sonst noch vorhanden ist. Die Haupt-/Grundfunktionen, mit den Typen, Konstanten usw. lege ich auch zusammen in eine Unit Optionale und zusätzliche Dinge konnen in andere Units. Im einfachsten Fall muß dann auch nur eine Unit eingebunden werden.
Delphi-Quellcode:
ShowMessage(TLogging.Test(1).ToString);
|
AW: Dateien umbennen - welches Namensformat?
Zitat:
Zitat:
Ich entschuldige mich für all die dummen Fragen. Aber wenn ich bald schon anfange alles umzubenennen und zu verbessern, dann richtig =) |
AW: Dateien umbennen - welches Namensformat?
Delphi-Quellcode:
Logging.Consts.Internals.pas
Logging.Consts.pas Logging.Types.Internals.pas Logging.Types.pas Logging.Interfaces.Internals.pas Logging.Interfaces.pas Logging.Classes.Internals.pas Logging.Classes.pas Logging.Utils.pas Logging.Utils.Database.pas Logging.Utils.Files.pas ... uses Logging.Consts, Logging.Types, Logging.Interfaces, Logging.Classes, Logging.Utils, ...;
Delphi-Quellcode:
Wenn du deine Logging-Klasse verwenden willst, dann brauchst du in der Regel auch einige Typen/Enums und eventuell auch 'nen paar Konstanten.
Logging.Internals.pas oder Logging.Base.Internals.pas // wenn es viel Internes gibt, was nur die Loggingklassen/-funktionen, aber nicht der User nutzt
Logging.Base.pas Logging.Utils.pas Logging.Utils.Database.pas Logging.Utils.Files.pas ... uses Logging.Base, Logging.Utils, ...; |
AW: Dateien umbennen - welches Namensformat?
Das sieht verdammt kompliziert aus. Jetzt sind wieder zwei neue dinge hinzugekommen: Base und Internals. Ich wüsste nicht einmal damit etwas anzufangen.
Ich glaube wenn dann bleibe ich bei Zitat:
Zitat:
dürfen die beiden oben genannten Units weitere Units in der Uses-Klausel stehen haben? |
AW: Dateien umbennen - welches Namensformat?
Wie man seine Grund-Unit nennt, ist vom Prinzip ertmal egal ... da gibt es tausende mögliche Namen.
Zitat:
Nur nicht sich selbst, aber Kreisreferenzen/Kreuzreferenzen sind eh eine eigene unendliche Geschichte. Aber es ist egal, ob Unit1 auch die Unit2 einbindet. In deiner Unit hast du dennoch nur direkten Zugriff auf die Unitinhalte, die im Interface der bei dir eingebundenen Units drin sind.
Delphi-Quellcode:
Nur Zugriff auf Unit1
// in Unit1.pas
uses Unit2, Unit3, Unit4; // in deiner Unit uses Unit1;
Delphi-Quellcode:
Auch Zugriff auf Unit2.
// in Unit1.pas
uses Unit2, Unit3, Unit4; // in deiner Unit uses Unit1, Unit2; Ich hab mir auch schonmal sowas wie Unit-Gruppen oder Unit-Makros gewünscht, oder wie man es sonst nennen will. Also wich dann z.B. nur
Delphi-Quellcode:
schreibe und irgendwo ist deffiniert, dass dieses ein "Alias" für
uses Logging.AllUnits;
Delphi-Quellcode:
ist.
Logging.Consts, Logging.Types, Logging.Interfaces, Logging.Classes, Logging.Utils
Da könnte man sich dann Gruppen für KompletteVCLWeilIchkeineLustHabeTausendeUnitsEinze lnEinzubinden, DataSnapUnits, DevExpressUnits, FastReportUnits oder EurekalogUnits anlegen. Aber das fänden Andere wieder total blöd und extremst sinnlos, siehe die aktuelle ![]() |
AW: Dateien umbennen - welches Namensformat?
Zitat:
Das ist bei mir aber schon nicht möglich denn meine Logging-Unit fragt Strings aus einer anderen Unit (Language, mehrsprachiges Programm) ab. Ist aber glaube ich auch relativ unwichtig hier, denn ich habe eh nur ein Projekt in der Größenordnung. |
AW: Dateien umbennen - welches Namensformat?
Zitat:
Sprich eine Unit mit Interface und Typen dazu und eine zweite mit der Klasse, die das Interface implementiert. Und bezüglich Einbindung anderer Units: Da gilt nur die Regel bei uns, das gemeinsame Units auch wieder nur gemeinsame Units einbinden dürfen. Sprich keine Units aus bestimmten Projekten. |
AW: Dateien umbennen - welches Namensformat?
Zitat:
Ich muss noch gut überlegen was ich mache. Logging.Utils und Logging.Types wäre natürlich super denn dann wäre alles getrennt und man wüsste in der Unitliste sofort wo man dran ist. |
AW: Dateien umbennen - welches Namensformat?
Ich strukturiere meine Units so.
Code:
Finde ich schön übersichtlich und bin ich von Java gewöhnt mit Packages.
rootFolder // Darin alle Forms in der regel mit Allias un davor.
rootFolder/unMain.pas rootFolder/unSettings.pas ...// Dann kommt ein Fragment ordner falls ich sie nutze. rootFolder/Fragment rootFolder/Fragment/Fragment.Header.pas rootFolder/Fragment/Fragment.Footer.pas ...// Und genau so weiter mit Datamodels und Klassen die irgend einen zusammenhängenden Zweck haben. rootFolder/Logger/Logger.Utils.pas rootFolder/Logger/Logger.Typs.pas .... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:20 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