AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Uses in jedem Unterprogramm neu einbinden ?

Ein Thema von nachtstreuner · begonnen am 4. Mai 2012 · letzter Beitrag vom 4. Mai 2012
Antwort Antwort
nachtstreuner

Registriert seit: 21. Aug 2005
Ort: ESA
104 Beiträge
 
Delphi XE2 Professional
 
#1

Uses in jedem Unterprogramm neu einbinden ?

  Alt 4. Mai 2012, 10:09
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
Alles wird gut -
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Uses in jedem Unterprogramm neu einbinden ?

  Alt 4. Mai 2012, 10:11
Reicht es nicht aus, diese Units einmal z.B. in STartpas einzubinden und dann in den anderen Unterprogrammen zu löschen ?
Schon probiert was passiert wenn du das machst?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
nachtstreuner

Registriert seit: 21. Aug 2005
Ort: ESA
104 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Uses in jedem Unterprogramm neu einbinden ?

  Alt 4. Mai 2012, 10:18
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 ?
Alles wird gut -
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: Uses in jedem Unterprogramm neu einbinden ?

  Alt 4. Mai 2012, 10:28
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
nachtstreuner

Registriert seit: 21. Aug 2005
Ort: ESA
104 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Uses in jedem Unterprogramm neu einbinden ?

  Alt 4. Mai 2012, 10:48
Hallo DeddyH,

schön erklärt !

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
Alles wird gut -
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: Uses in jedem Unterprogramm neu einbinden ?

  Alt 4. Mai 2012, 10:49
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:
Windows, SysUtils, Irgendwas
und dann
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).
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Mai 2012 um 10:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Uses in jedem Unterprogramm neu einbinden ?

  Alt 4. Mai 2012, 10:55
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.
Übersichtlicher? Wenn du z.B. 10.000 Units hast und die alle in einer einzigen Unit eingebunden werden z.B., so dass niemand weiß welche Unit nun wirklich welche benötigt?
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...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
PMM

Registriert seit: 17. Feb 2005
101 Beiträge
 
#8

AW: Uses in jedem Unterprogramm neu einbinden ?

  Alt 4. Mai 2012, 13:33
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...)
  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 15:21 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