![]() |
Auf "Ursprungsunit" zugreifen
Hallo!
Ich bin noch Anfänger in Delphi und möchte als kleine Übung einen Taschenrechner programmieren, der so ähnlich, wie der in Windows mitgelieferte funktioniert. Dafür habe ich zwei Units angelegt: Die eine Unit (main.pas) enthält das Formular des Taschenrechners, die Eventhandlerfunktionen (drücken der einzelnen Buttons) und eine Funktion, die einen beliebigen Text (in der Regel das Ergebnis) auf das Display des Taschenrechners schreibt. Die zweite Unit (code.pas) verarbeitet dann die Benutzereingaben. Sie speichert die eingegebenen Zahlen und führt Rechenoperationen aus etc. Die zweite Unit rufe ich in der ersten Unit über 'uses' auf. Ich kann auch aus der ersten Unit auf Prozeduren der zweiten Unit zugreifen (NameZweitenUnit.Prozedurname). Leider funktioniert das nicht, um aus der zweiten Unit auf Funktionen der ersten Unit zuzugreifen. Und wenn ich mit uses in der zweiten Unit die erste aufrufe dann bekomme ich diese Fehlermeldung: "[Fataler Fehler] code.pas(5): F2047 Zirkuläre Unit-Referenz auf 'code'" Also letzendlich geht es darum, dass ich aus der zweiten Unit Prozeduren der ersten Unit aufrufen möchte... Ich würde mich freuen, wenn jemand mir da nen Tipp geben könnte! |
Re: Auf "Ursprungsunit" zugreifen
Binde eine Unit den Uses im Interface Abschnitt ein und die andere in den Uses im Implemantations Abschnitt. Wobei ich aber das Design ändern würde, damit die Unit Code.pas unabhängig von der Hauptunit ist. Dann kannst du sie in beliebigen Projekten nutzen, ohne immer etwas ändern zu müssen.
|
Re: Auf "Ursprungsunit" zugreifen
Danke erstmal für die Antwort. Das funktioniert soweit.
Aber inwiefern würdest du das Design ändern?? Ich habe doch extra den eigentlichen Quellcode des Rechners und die Oberfläche incl. der Funktionen zur Ausgabe getrennt! |
Re: Auf "Ursprungsunit" zugreifen
Offensichtlich hast Du es nicht genug getrennt, wenn die Logik das Benutzerinterface benötigt.
|
Re: Auf "Ursprungsunit" zugreifen
Wie schon gesagt bin ich noch Anfänger in Delphi, daher entschuldige meine vielleicht manchmal etwas dummen Fragen :? aber wie würdest du das denn trennen??
|
Re: Auf "Ursprungsunit" zugreifen
Zeig mal die Unit Code.pas.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz