![]() |
Zirkuläre Unit Referenz auf Unit 1
Guten Morgen zusammen, wie oben gesagt habe ich, wenn ich mein Programm starten möchte folgenden Fehler:
Zirkuläre Unit Referenz auf Unit 1 Ich habe heraus gefunden das diese Meldugn kommt, wenn man bei Unit1 in uses "Unit2" einbindet und bei Unit2 in uses "Unit1" einbindet. Jetzt ist das problem, wie kann ich das jetzt machen, dass das nicht mehr kommt? Denn ich habe folgendes vor: Ich starte das Programm. Hauptfenster(Unit1) öffnet sich. Nun möchte ich was in ListView eintragen, weshalb sich nun erstmal eine neue Form öffnet, wo man die ganezn Eingaben tätigt. Wenn ich nun auf den Butten in Unit 2 klicke, sollen die Daten in ListView (in Unit1) eingetragn werden. Doch dafür musss ich eben in die uses die Units eintragen. Oder wie kann man das noch machen? |
AW: Zirkuläre Unit Referenz auf Unit 1
Guten Morgen,
baue Dir eine Unit mit einem Datencontainer. Binde sie in Unit1 und Unit2 ein. Den Container kannst Du aus der Unit2 befüllen und aus der Unit1 anzeigen lassen. Grüße Klaus |
AW: Zirkuläre Unit Referenz auf Unit 1
Du kannst im implementation Teil auch noch Units einbinden, so solltest du die Fehlermeldung umgehen können.
Edit: Hier mal ein kleines beispiel:
Delphi-Quellcode:
implementation
uses UnSettings, UnSettingLog; |
AW: Zirkuläre Unit Referenz auf Unit 1
Moin,
alternativ bietet die Klasse in Unit2 ein Ereignis an, dass dann in der Unit1 ein Update des ListViews ausführt. MfG Fabian PS: Sowas wie Borschti sagt, geht zwar auch, aber ich würde sowas immer vermeiden, weil im interface-Abschnitt ist die Unit1 noch nicht bekannt, und es gibt andere Wege um das zu umgehen. Außerdem kannst du die Unit2 einfach austauschen, solange es eine andere Klasse gibt mit der gleichen Methode. |
AW: Zirkuläre Unit Referenz auf Unit 1
Mach die Form der Unit2 Modal:
Delphi-Quellcode:
P.S.: mein hundertster Beitrag :)
procedure tform1.showform2click(Sender : tobject);
begin if form2.showmodal = mrOK then begin // hier kannst du fleißig auf alle daten auf form2 zugreifen name := form2.edtname; ort := form2.edtort; ... end; end; |
AW: Zirkuläre Unit Referenz auf Unit 1
Zitat:
|
AW: Zirkuläre Unit Referenz auf Unit 1
@omata: Entschuldigung ich hab mich vielleicht nicht ganz klar ausgedrückt.
So hab ich das hingeschrieben:
Delphi-Quellcode:
wenn du aufmerksam liest, dann fällt dir auf das ich nicht direkt auf die Edits zugreife, sonst würde da stehen:
name := form2.edtname;
Delphi-Quellcode:
Gruß Atlan
name := form2.editname.text;
|
AW: Zirkuläre Unit Referenz auf Unit 1
Das Problem ist auch eher das Form2 :zwinker:
|
AW: Zirkuläre Unit Referenz auf Unit 1
Ich brauche unbedingt schnelle Hilfe!
Ich bin komplette Anfängerin und freue mich, dass ich überhaupt soweit gekommen bin... Im Unterricht soll ich ein Programm schreiben. Dies ist fertig programmiert und jetzt das Problem: Ich bekomme die Fehlermeldung: Unit2.pas Zirkuläre Unit-Referenz auf 'Unit1' Außerdem kann 'Unit1' als Unit-Name nicht aufgelöst werden. Da ich durch einen Button die Seiten in meinem Programm wechseln möchte habe ich Unit2 in Unit1 unter uses miteingebunden und andersrum genauso. Wie kann ich diesen Fehler umgehen? Bitte eine verständliche Antwort :( |
AW: Zirkuläre Unit Referenz auf Unit 1
Zitat:
Verschiebe mal die uses-Anweisungen für unit1 und unit2 in den implementation-Teil. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 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-2025 by Thomas Breitkreuz