![]() |
Uses in jedem Unterprogramm neu einbinden ?
Liebe Delphi-Gemeinde,
ich hätte mal eine allgemeine Verständnisfrage zum Aufbau einer Anwendung. Ich habe ein Hauptprogramm [start.pas] aus diesem Hauptprogramm rufe ich z.B. [Adresse.pas] auf Adresse.pas ruft [DRUCK.pas] auf usw. In der Start.pas werden standardmäßig mittels uses verschiedene Units eingebunden, z.b. Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, usw. dieselben Units werden ebenfalls in Adresse.pas und Druck.pas per uses automatisch eingebunden. Reicht es nicht aus, diese Units einmal z.B. in STartpas einzubinden und dann in den anderen Unterprogrammen zu löschen ? Danke schonmal für die interessannten Beiträge |
AW: Uses in jedem Unterprogramm neu einbinden ?
Zitat:
|
AW: Uses in jedem Unterprogramm neu einbinden ?
Hallo Bernhard,
sicherlich habe ich das, es hagelt dann Meldungen von wegen Undeklarierter Bezeichner... usw. Aber wenn ich jetzt in der Adresse.pas über die uses Klausel, die Start.pas einbinde, in dieser sich wiederum in der uses schon die allgemeinen Units befinden, sollte das doch genügen. Oder ? |
AW: Uses in jedem Unterprogramm neu einbinden ?
Da Du es bereits versucht hast, weißt Du ja schon die Antwort. Wenn ich jemanden kenne, der jemanden kennt, der wieder jemanden kennt, der weiß, wo Heinz Meier wohnt, heißt das ja nicht, dass ich jetzt Heinz Meiers Adresse kenne.
|
AW: Uses in jedem Unterprogramm neu einbinden ?
Hallo DeddyH,
schön erklärt ! :thumb: Trotzdem wäre es meiner Meinung nach schöner und übersichtlicher, wenn die Units nur einmal im gesamten Projekt per Uses eingebunden werden und dann allen Unterprogrammen bekannt wären. Danke für die Antworten |
AW: Uses in jedem Unterprogramm neu einbinden ?
Nein.
Soll auf etwas von einer Unit zugegriffen werden, dann muß diese Unit auch in der Uses-Klausel der aufrufenden Unit drinstehn und zwar direkt dort und nicht über irgendwelche andere Units. Es gibt keine Vererbung oder sowas, bei den Uses-Einbindungen. Grund: Typenbezeichner sind über mehrere Units nicht eindeutig und somit gäbe es keine eindeutige Beziehung, wenn die Uses nicht direkt angegeben sind. Was man höchstens versuchen könnte, das sind Include-Dateien, aber ob man damit was verbessert? MyDefaultUnits.inc
Code:
und dann
Windows, SysUtils, Irgendwas
Delphi-Quellcode:
uses
{$INCLUDE MyDefaultUnits.inc}, Forms, Sonstwas; Nja, Projekt-Global sowas wie mit System und SysInit währe manchmal nicht schlecht, aber damit könnte man sich andere Probleme einhandeln ... eben wenn es doppelte Typenbezeichner gäbe ... dann kommt man nur noch über den Namespac dran, da man diese "autoamtischen" Units nicht in der Usesklausel verschieben kann (da sie dort nicht drinstehn). |
AW: Uses in jedem Unterprogramm neu einbinden ?
Zitat:
Ich glaube du stellst dir das ganze gerade für sehr kleine Projekte vor. Überlege einmal was das für größere Projekte heißt, an denen viele Personen arbeiten. ;-) Das widerspräche auch schon der Kapselung der einzelnen Teile einer Software. Im Gegenteil ist es besser, je weniger die einzelnen Teile voneinander abhängen und voneinander wissen, da man sonst kaum sinnvolle Unit- und Integrationstests durchführen kann. Davon ganz abgesehen solltest du dir einmal anschauen wie der Compiler die Unit-Hierarchien parst und kompiliert. Das würde so nämlich gar nicht umsetzbar sein. Das geht schon beim Ausführen der initialization Abschnitte in der richtigen Reihenfolge los... |
AW: Uses in jedem Unterprogramm neu einbinden ?
Wem die bisherigen Antworten nicht genügen: Es wäre auch der Tot jeder Wiederverwendung, denn ein Unit könnte dann nur im Originalprojekt verwendet werden (oder in einem, dass zufällig die erforderlichen, aber dann ja unbekannten, Units schon einbindet...)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 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 by Thomas Breitkreuz