Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#19

AW: Verfügbarkeit öffendlicher Units

  Alt 18. Jan 2014, 05:55
"Ebenso wie ein Programm kann auch eine Unit auf andere Units zugreifen. Letztere müssen, durch Kommas getrennt, nach dem reservierten Wort uses aufgelistet werden." Und in diesem kompletten Kontext kommt dem dann folgenden Satz (siehe in #6) eine ganz andere logische, nämlich auf dieses sozusagen imperative Mandat bezogene Beschreibung des zutreffenden Sachverhaltes zu als hier fälschlicherweise unterstellt worden ist.
Im Buch "Doberenz/Gewinnus - Grundlagen, Profiwissen, Kochbuch, Borland Delphi 7" (ISBN 978-3-446-41216-3) steht auf Seite 282 oben (Kapitel 6: Units und Objekte) unter der Überschrift Uses-Klausel folgendes:

Öffentliche (public) Deklaration In diesem Fall erscheint die uses-Klausel unmittelbar nach dem Wort interface. Programme bzw. andere Units, die die aktuelle Unit benutzen, können also auch zusätzlich auf die hier angeführten Units zugreifen. Allerdings sind im Interface-Teil so genannte "zirkulare" Deklarationen verboten (siehe unten). Wenn z.B. Unit A die Unit B öffentlich benutzt, darf das andererseits die Unit B nicht mit der Unit A tun (und umgekehrt). (Hervorhebungen von mir.)

Wenn ich davon ausgehe, daß mit "aktuelle Unit" genau die Unit gemeint ist, um deren öffenltiche Uses-Klausel es hier geht, behauptet der Autor unmißverständlich, daß andere Units, die diese aktuelle Unit verwenden, zusätzlich (zu den veröffentlichten Methoden der aktuelle Unit) auch auf die in der öffenltichen Uses-Klausel der aktuellen Unit stehenden Units zugreifen könnten. Das ist eindeutig falsch, das kann man unter keinen Umständen anders interpretieren.

Gerade ausprobiert:

In der öffentlichen USES-Klausel der MainUnit wird UnitTest eingebunden. In der öffentlichen USES-Klausel von UnitTest wird UnitNochEinTest eingebunden. Im Interface-Teil von UnitNochEinTest wird eine Konstante TestConst = 'TestString'; deklariert. Die kann ich nun von UnitTest aus lesen, jedoch nicht von der MainUnit aus.

Geändert von Perlsau (18. Jan 2014 um 06:07 Uhr)
  Mit Zitat antworten Zitat