AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Zirkuläre Unit Referenz auf Unit 1
Thema durchsuchen
Ansicht
Themen-Optionen

Zirkuläre Unit Referenz auf Unit 1

Offene Frage von "hoika"
Ein Thema von SyntaxXx · begonnen am 19. Jul 2010 · letzter Beitrag vom 16. Jul 2014
Antwort Antwort
Seite 1 von 2  1 2      
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#1

Zirkuläre Unit Referenz auf Unit 1

  Alt 19. Jul 2010, 08:26
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?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Zirkuläre Unit Referenz auf Unit 1

  Alt 19. Jul 2010, 08:41
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
Klaus
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Zirkuläre Unit Referenz auf Unit 1

  Alt 19. Jul 2010, 08:58
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;

Geändert von Borschti (19. Jul 2010 um 09:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Zirkuläre Unit Referenz auf Unit 1

  Alt 19. Jul 2010, 10:57
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.
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
David Martens

Registriert seit: 29. Sep 2003
205 Beiträge
 
Delphi XE Enterprise
 
#5

AW: Zirkuläre Unit Referenz auf Unit 1

  Alt 19. Jul 2010, 18:13
Mach die Form der Unit2 Modal:

Delphi-Quellcode:
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;
P.S.: mein hundertster Beitrag
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Zirkuläre Unit Referenz auf Unit 1

  Alt 20. Jul 2010, 00:01
    // hier kannst du fleißig auf alle daten auf form2 zugreifen
Bitte nicht so programmieren. Benutze Zugriffsmethoden, um Daten zwischen Units bzw. Formularen auszutauschen. Alles andere ist nicht sinnvoll.
  Mit Zitat antworten Zitat
David Martens

Registriert seit: 29. Sep 2003
205 Beiträge
 
Delphi XE Enterprise
 
#7

AW: Zirkuläre Unit Referenz auf Unit 1

  Alt 20. Jul 2010, 13:26
@omata: Entschuldigung ich hab mich vielleicht nicht ganz klar ausgedrückt.

So hab ich das hingeschrieben:

name := form2.edtname; wenn du aufmerksam liest, dann fällt dir auf das ich nicht direkt auf die Edits zugreife, sonst würde da stehen:


name := form2.editname.text; Gruß Atlan
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Zirkuläre Unit Referenz auf Unit 1

  Alt 20. Jul 2010, 13:27
Das Problem ist auch eher das Form2
Markus Kinzler
  Mit Zitat antworten Zitat
Nele1997

Registriert seit: 16. Jul 2014
1 Beiträge
 
#9

AW: Zirkuläre Unit Referenz auf Unit 1

  Alt 16. Jul 2014, 15:49
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
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#10

AW: Zirkuläre Unit Referenz auf Unit 1

  Alt 16. Jul 2014, 16:02
Bitte eine verständliche Antwort
"Verständlich" hängt in vielen Fällen auch von dem ab, der es verstehen soll.

Verschiebe mal die uses-Anweisungen für unit1 und unit2 in den implementation-Teil.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz