Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Unit Verbindungen (https://www.delphipraxis.net/93365-unit-verbindungen.html)

Stillmatic 4. Jun 2007 22:46


Unit Verbindungen
 
Hallo

Ich habe eine Frage bezüglich der Uses Klassen!

Wenn ich in der Unit1(uses Unit2) eine Funktion aus der Unit2 brauche
..und
in der Unit2(uses Unit1) den Pfad einer Datei aus Unit1 brauche

bekommt man einen Fehler!!

Kann man das ganze umgehen oder muss ich meine komplettes Programm umbauen??

dajuhsa 4. Jun 2007 22:56

Re: Unit Verbindungen
 
die uses im interface oder in der implementation?

Hast du vor der datei unit1. (oder form1.) stehen?

Stillmatic 4. Jun 2007 23:00

Re: Unit Verbindungen
 
Uses im Interface!!

Wenn dann hätte ich Unit1 vor der Datei stehen!

dajuhsa 4. Jun 2007 23:02

Re: Unit Verbindungen
 
lösch die uses mal raus (nur unit1/unit2) und füge sie mit Alt+F11 wieder hinzu

Stillmatic 4. Jun 2007 23:08

Re: Unit Verbindungen
 
Wuste garnicht das das mit alt F11 geht!

Thx, der Fehler ist erstmal behoben.....

Er hat die Uses jetzt im Implementation Teil

dajuhsa 5. Jun 2007 12:21

Re: Unit Verbindungen
 
bitte..

zur info:

die uses im interface verbinden nur mit dcu 's wie z.B. Math

die uses im implementation teil verbinden mit uncompillierten units also pas-dateien :mrgreen:

Die Muhkuh 5. Jun 2007 12:31

Re: Unit Verbindungen
 
Zitat:

Zitat von dajuhsa
bitte..

zur info:

die uses im interface verbinden nur mit dcu 's wie z.B. Math

die uses im implementation teil verbinden mit uncompillierten units also pas-dateien :mrgreen:

Biste Dir da sicher? Ich würde sagen, dass beide uses-abschnitte die dcu's einbinden...

Haste da mal ne Quelle für?

CCRDude 5. Jun 2007 12:37

Re: Unit Verbindungen
 
Naja, schon irgendwie sehr stark vereinfacht, diese Aussage ;)
Beide uses-Anweisungen kompilieren natürlich .pas-Dateien ganz frisch, wenn man "Build All" macht (und die .pas überhaupt verfügbar ist).
Und beim reinen Kompilieren wird auch nur eine .dcu verwendet, solange die .pas nicht neuer ist.

Gab's übrigens gerade erst hier, einfach dort weiter nachsehen ;)

hoika 5. Jun 2007 12:40

Re: Unit Verbindungen
 
Hallo,

hm ?
Was hat denn uses mit dcu/pas zu tun ?

Das uses zeigt dem Compiler erst mal an,
wo bestimmte Funktionen stehen, die nicht in der aktuellen Unit stehen.

Interface-Teil

darauf können andere units (durch Einbinden in der Interface/Implementation)
zugreifen

Implementation

interne Funktionen der jeweiligen Unit (quasi privat)


Findet der Compiler eine pas und eine dcu und ist die dcu älter,
wird eine neue dcu erzeugt (make),
findet er keine pas und ist die dcu im korrekten Format ,
wird sie benutzt (fast jede Delphi-Version hat ein eigenes dcu-Format).


Das Problem der ganzen Interface/Implementation Sache ist,
dass eine Unit1/Unit2 nicht gegensichtig im Interface per Uses stehen können
(zirkuläre Reference).

Hier hilft wie oben gelöst, die eine uses in den Implementation-Teuil zu packen.

Geht das nicht, muss eine dritte Unit erzeugt werden,
die die gemeinsam benutzten Sachen enthält.

Das ist aber manchmal nicht möglich, gerade bei komplexeren Objekten ;(


Heiko

dajuhsa 5. Jun 2007 12:51

Re: Unit Verbindungen
 
also "vorgefertigte" dcu 's gehen bei mir nur im interface und "noch zu kompillierende" units gehen bei mir nur im implementation teil, kann sein dass ich was falsch mache, wollte jetzt niemanden in die irre führen :coder2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr.
Seite 1 von 2  1 2      

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