"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.