AGB  ·  Datenschutz  ·  Impressum  







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

Gemeinsame Uses Klausel in allen Units

Ein Thema von berens · begonnen am 25. Jul 2006 · letzter Beitrag vom 26. Jul 2006
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#11

Re: Gemeinsame Uses Klausel in allen Units

  Alt 25. Jul 2006, 10:02
Hi!

Ja, wenn das Include dann über der Stelle des Aufrufs steht und dazu an einer Stelle, wo auch dein Code-Ausschnitt stehen könnte, dann klappt das!


Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#12

Re: Gemeinsame Uses Klausel in allen Units

  Alt 25. Jul 2006, 10:04
könnte man das so umbiegen das man die Datei erst zur Laufzeit angibt und der Code dann ausgeführt wird?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Gemeinsame Uses Klausel in allen Units

  Alt 25. Jul 2006, 10:06
Nein, weil der Compiler ja den Inhalt der includierten Datei vor dem Compilieren an die Position einfügt.
Markus Kinzler
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#14

Re: Gemeinsame Uses Klausel in allen Units

  Alt 25. Jul 2006, 10:06
Habs grad in der Hilfe gefunden:

Zitat:
Anmerkungen
Die Parameter-Direktive $I weist den Compiler an, die angegebene Datei in die Compilierung aufzunehmen. Diese Datei wird direkt nach der Direktive {$I Dateiname} in den Text eingefügt. Die vorgegebene Namenserweiterung für die Datei ist .pas. Wenn die Datei ohne Verzeichnispfad angegeben wird, sucht Delphi die Datei in dem Verzeichnis, in dem auch das Modul liegt. Außerdem werden alle Verzeichnisse durchsucht, die im Eingabefeld Suchpfad der Registerkarte Verzeichnisse/Bedingungen im Dialogfeld Projekt/Optionen (oder mit der Option -I in der dccil-Kommandozeile) festgelegt wurden.

Wenn der Dateiname ein Leerzeichen enthält, schließen Sie ihn in halbe Anführungszeichen ein: {$I 'Meine Datei'}.

Für die Verwendung von Include-Dateien gilt eine Einschränkung: Sie können nicht in einem Anweisungsblock eingebunden werden. Dies liegt daran, dass zwischen den Schlüsselwörtern begin und end alle Anweisungen eines Anweisungsblocks aus derselben Quelldatei stammen müssen.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#15

Re: Gemeinsame Uses Klausel in allen Units

  Alt 25. Jul 2006, 10:08
Hi!

Das geht, wie der Name sagt, mit diesen Compiler-Switches nicht!
Um zur Laufzeit noch Code einzubinden gibt es andere Mittel und Wege (die man auch im Forum finden kann).

Sollten da noch Fragen sein, aber am besten einen neuen Beitrag anfangen, da das hier ja schon nichts mehr mit dem Ausgangsthema zu tun hat


Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
25. Jul 2006, 10:11
Dieses Thema wurde von "sakura" von "Die Delphi-IDE" nach "Sonstige Fragen zu Delphi" verschoben.
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#17

Re: Gemeinsame Uses Klausel in allen Units

  Alt 25. Jul 2006, 10:21
Zitat von berens:
Gibt es also eine Möglichkeit, wie z.B. bei PHP (war das Include?) einfach an diese Stelle der Unit eine andere Datei hineinzuladen, wo z.B. alle Uses drinstehen?
Die Idee ist IMHO ziemlich krank.
Die einzige n 2 Stellen in denen includes sinn machen sind Stellen, die ein Defizit im Compiler selbst auszugleichen versuchen:
  1. Compiler versionsprüfungen
    der Präprozessor kann (zumindest in D7) keine Ausdrücke á la {$ifdef compilerversion < 170}
  2. Pseudo templates

Ich simuliere in native Delphi namespaces indem ich in einer Unit Aliases auf die Typen in den anderen Units aufliste. Auf die Art hat man seine Typen immer noch schön in einzelnen Units, aber braucht nur einen "Namespace" einzubinden um alle Typen benutzen zu können.
Bleistift (habe die Leerzeilen entfernt ):
Delphi-Quellcode:
unit uClass1;
interface
type
  Class1 = class
  end;
Delphi-Quellcode:
unit uClass2;
interface
type
  Class2 = class
  end;
Delphi-Quellcode:
unit MyClasses;
interface
uses
  uClass1,
  uClass2;
type
  Class1 = uClass1.Class1;
  Class2 = uClass2.Class2;
Delphi-Quellcode:
unit Babla;
interface
uses
  MyClasses;
type
  Class3 = class(Class2)
  end;
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Gemeinsame Uses Klausel in allen Units

  Alt 25. Jul 2006, 10:29
Zitat von berens:
Hallo!

Ich versuche gerade bei meinem Projekt jede Komponente in eine eigene Unit zu machen.
Hi berens,

bei der ganzen Diskussion weise ich dennoch darauf hin, dass es keinen Sinn macht, jede Komponente in eine eigene Unit zu verfrachten. Man kann sich die Delphi VCL schon als Vorlage benutzen.
So sollte man seine Komponenten in logischen Einheiten zusammenfassen.
Ich benutze z.B. die Namenskonventionen von Delphi und setzt nur 2 Buchstaben davor.
So habe ich alle Controls in rwControls.pas, alles für die Datenbank in rwDB.pas und allgemeine Routinen in rwSysUtils, Formularklassen und Routinen in rwForms etc.
Somit wird der Uses - Abschnitt wieder überschaubar und du vermeidest, dass deine Komponentenunits sich irgendwann unüberschaubar gegenseitig referenzieren.

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#19

Re: Gemeinsame Uses Klausel in allen Units

  Alt 25. Jul 2006, 10:58
Zitat von dataspider:
bei der ganzen Diskussion weise ich dennoch darauf hin, dass es keinen Sinn macht, jede Komponente in eine eigene Unit zu verfrachten. Man kann sich die Delphi VCL schon als Vorlage benutzen.
...
Somit wird der Uses - Abschnitt wieder überschaubar und du vermeidest, dass deine Komponentenunits sich irgendwann unüberschaubar gegenseitig referenzieren.
Du hast schon meinen Post gelesen, oder?
Diese übermüllten Units mit mehr als 10 oder gar 20 ( ) Typen finde absolut ekelerregend.
Sie sind immer größer als ein Monitor, das heißt man muss immer scrollen um einen Typen in seiner Gänze sehen zu können.
Wie zum Geier soll eine überschaubare uses-Clause unleserlichen Code rechtfertigen können? Vor allem wenn man (zumindest in native Delphi) das ganze mit enem ganz einfachen Trick umgehen kann?
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: Gemeinsame Uses Klausel in allen Units

  Alt 25. Jul 2006, 11:07
Zitat von Elvis:
Du hast schon meinen Post gelesen, oder?
Diese übermüllten Units mit mehr als 10 oder gar 20 ( ) Typen finde absolut ekelerregend.
Sie sind immer größer als ein Monitor, das heißt man muss immer scrollen um einen Typen in seiner Gänze sehen zu können.
Wie zum Geier soll eine überschaubare uses-Clause unleserlichen Code rechtfertigen können? Vor allem wenn man (zumindest in native Delphi) das ganze mit enem ganz einfachen Trick umgehen kann?
Da ich mit dem ModelMaker CodeExplorer code, kann ich das mit der Unübersichtlichkeit nicht nachvollziehen.
Und - sorry - es ist sicher Geschmacksfrage. Aber ich möchte z.B. nicht zwischen hunderten von Units in der IDE navigieren, weil ich gerade mal ein Refactoring meiner Komponenten durchführe.
Und dein Trick ist für mich ein nicht notwendiger Mehraufwand.

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 13:25 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