AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zirkuläre Unit

Ein Thema von Zita1989 · begonnen am 14. Nov 2006 · letzter Beitrag vom 23. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
Zita1989

Registriert seit: 14. Nov 2006
Ort: Hemmingen
6 Beiträge
 
Turbo Delphi für Win32
 
#1

Zirkuläre Unit

  Alt 14. Nov 2006, 16:37
Hi,
bei mir wird immer folgender Fehler angezeigt:
[Pascal Fataler Fehler] Console.pas(5): F2047 Zirkuläre Unit-Referenz auf 'Console'
was soll ich tun???

Bitte um Hilfe
Zita
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: Hilfe!!

  Alt 14. Nov 2006, 16:39
aloha...

willkommen in der dp

könntest du bitte denn titel deines themas anpassen, weil hilfe braucht hier fast jeder

etwas quell text wäre glaub hilfreich
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Hilfe!!

  Alt 14. Nov 2006, 16:41
Hallo, herzlich willkommen.

Bitte ändere den Titel in einen aussagekräftigen.

Du bindest Units, wie die Meldung sagt, zirkulär ein.
D.h. du hast Beispielsweise Unit1 und dort ganz oben in den "uses" einen Verweis auf Unit 2 und in dieser wiederum einen auf Unit 1.

Schreibe die Einbindung der Units lieber in den implementation-Abschnitt:

Delphi-Quellcode:
implementation

uses
  Unit1, ...
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Hilfe!!

  Alt 14. Nov 2006, 16:41
Ganz einfach: Du hast eine zirkuläre Beziehung zwischen zwei Units, das heißt Unit A bindet Unit B ein, Unit B bindet Unit A ein. Der Compiler weiß in dem Fall nicht, welche Unit er zuerst parsen soll.

In der OH findest du einige Problemlösungen, zum Beispiel die beiden Units zusammenzulegen oder die Referenz in einer der beiden Units in den implementation-Teil zu verschieben.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Zita1989

Registriert seit: 14. Nov 2006
Ort: Hemmingen
6 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Hilfe!!

  Alt 14. Nov 2006, 16:50
danke erst einmal für die hilfe, aber meinst du mit OH???

Gruß
Zita
Zita
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Hilfe!!

  Alt 14. Nov 2006, 16:53
Mauszeiger drüber und warten. Dann kommt die Akronym-Beschreibung.

OH ist die Onlinehilfe von Delphi, einfach deinen Fehler markieren und F1 drücken.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#7

Re: Zirkuläre Unit

  Alt 14. Nov 2006, 18:07
Zitat von Zita1989:
hi,
was muss ich tun wenn bei mir Zirkuläre Unit angezeigt wird???
Da Du nochmals nachgefragt hast:

Das passiert, wenn sich zwei, oder mehrere Units gegenseitig in der globalen (oberen) Uses Klausel referenzieren.

Unit1:
Delphi-Quellcode:
unit Unit1;

interface

uses Unit2;

...
Unit2:
Delphi-Quellcode:
unit Unit2;

interface

uses Unit1;

...

Lösungsbeispiel (wie von Matze):
Delphi-Quellcode:
unit Unit2;

interface

implementation

uses Unit1; // Lokale Uses Klausel

end.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Zirkuläre Unit

  Alt 14. Nov 2006, 18:38
Funktioniert nicht unbedingt.

Beispiel: Unit1 referenziert im Interface eine Typendeklaration/Variable aus Unit2, Unit2 macht das gleiche mit Unit1. Die zirkuläre Referenz lässt sich hier nicht auflösen, indem man die uses-Klausel in die implementation verschiebt, sondern nur durch Zusammenlegung der Units.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
14. Nov 2006, 20:34
Dieses Thema wurde von "SirThornberry" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#10

Re: Zirkuläre Unit

  Alt 15. Nov 2006, 00:10
@3_of_8: Funktioniert doch, zumindest hier

@Zita1989:

Hättest Du das gemacht, was wir Dir geraten haben, wärst Du schon weiter.
Ich hab das mal als Anhang abgehängt, um uns neue Threads zu dem Thema zu schenken...

Übrigens, der Programmierstiel ist nicht ohne, da hagelts ja Warnungen...
Und ein direkter Aufruf von TConsole.Irgendwas ist nicht erlaubt
Ich hab da eine Variable MyConsole rein gemacht

Grüßle!
Angehängte Dateien
Dateityp: zip console_203.zip (2,5 KB, 14x aufgerufen)
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  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 14:42 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