Was meinen Sie mit "eine Klasse, die verwendet"? Vielleicht meinst du "eine Einheit, die verwendet"? Wenn dies der Fall ist, müssen Sie sowohl A als auch B zur uses
Klausel hinzufügen. Sie können dann zwischen den beiden Verfahren unterscheiden, indem Sie A.One.SomeProcedure
oder B.One.SomeProcedure
schreiben. Wenn Sie nur One.SomeProcedure
schreiben, wird das Verfahren in der Einheit letzte in der uses
Klausel verwendet. [Hier gehe ich davon aus, dass One
Klassen sind, die Klasse VerfahrenSomeProcedure
enthalten. Wenn SomeProcedure
eine gewöhnliche Prozedur der Klasse One
ist, müssen Sie - natürlich - ein Objekt dieser Klasse erstellen und dieses verwenden. Anschließend können Sie tun myobj := A.One.Create
oder myobj := B.One.Create
, wo var myobj: A.One
oder var myobj: B.One
jeweils]
(Denken Sie auch daran, dass jede Einheit zweiuses
Klauseln enthält. Eine am Anfang des interface
Abschnitt und eine am Anfang des implementation
Abschnitt . Wenn Sie oben N.)
Beachten Sie auch, dass in Delphi, die Klasse-Aufruf muss auf einer Linie angeordnet sein, etwas von der Einheit A in Zeile N, die uses
Klausel, um die Einheit A enthalten sein sollte, ed TOne
, mit dem T
Präfix. Jeder folgt dieser Konvention und es sieht seltsam ohne es aus.
Wenn Sie gerade eine verkürzte Version Ihres Codes gepostet haben, können wir Ihnen sofort die Lösung sagen –
Der genaue Code ist nicht wirklich wichtig; Das fehlende Teil war, dass beide Einheiten in der Klausel "uses" sein müssen. Aus einem C# -Hintergrund kommend, verwirrte mich das, bis ich es herausfand. (C# ermöglicht vollständig qualifizierte Namespaces, ohne dass andere Einheiten importiert werden.) – ashes999