AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Zirkuläre Uni-Referenz einer Unit auf sich selbst?
Thema durchsuchen
Ansicht
Themen-Optionen

Zirkuläre Uni-Referenz einer Unit auf sich selbst?

Ein Thema von Oracle · begonnen am 26. Jun 2009 · letzter Beitrag vom 26. Jun 2009
Antwort Antwort
Oracle
(Gast)

n/a Beiträge
 
#1

Zirkuläre Uni-Referenz einer Unit auf sich selbst?

  Alt 26. Jun 2009, 08:11
Meine Delphi 2007 spuckt mir zur Zeit einen Fehler aus den ich nicht verstehen.

Ich bekomme folgenden Fehler:

[DCC Fehler] Unitx.pas (10): F2047 Zirkuläre Unit-Referenz auf Unitx.pas

Also eine Unit referenziert sich selbst zirkulär?? Wie kann das sein, ich dachte bisher immer für eine zirkuläre Referenz müssten mindestens zwei Units beteiligt sein.

Vielen Dank euch schonmal im Vorraus
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Zirkuläre Uni-Referenz einer Unit auf sich selbst?

  Alt 26. Jun 2009, 08:35
Hast Du die Unit evtl. innerhalb der der Unit selbst referenziert? Gibt es vielleicht eine Unit mit selbem Namen im Suchpfad? Was passiert, wenn Du alle DCU Dateien löscht und das Projekt neu erzeugst?

Viele Grüße
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Oracle
(Gast)

n/a Beiträge
 
#3

Re: Zirkuläre Uni-Referenz einer Unit auf sich selbst?

  Alt 26. Jun 2009, 09:51
Ich konnte es inzwischen lösen, allerdings ist mir trotzdem nicht ganz klar wo der Fehler lag.
Die Unit habe ich nicht innnerhalb von sich selbst referenziert.

Der Compiler zeigte mir in der Uses Liste allerdings immer eine Unit mit Rot an. Anscheinend ist das die zweite Unit im Bunde dieser zirkuläre Referenz. Nur komisch dass ich in dieser Rot markierten Unit die Unit aus der Fehlermeldung gar nicht referenziert habe. Kann eine zirkuläre Referenz auch einen größen Zirkel als nur 2 Units haben?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.332 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Zirkuläre Uni-Referenz einer Unit auf sich selbst?

  Alt 26. Jun 2009, 09:54
Zitat von Oracle:
Kann eine zirkuläre Referenz auch einen größen Zirkel als nur 2 Units haben?
Natürlich. Die Units, die oben unter Interface stehen, werden der Reihe nach vom Compiler abgearbeitet. Und wenn der dann wieder zur selben Unit zurückkommt, dann würde das wieder von vorne losgehen (zirkulär eben).

In dem Fall gehört dann eine der Units unter implementation.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Oracle
(Gast)

n/a Beiträge
 
#5

Re: Zirkuläre Uni-Referenz einer Unit auf sich selbst?

  Alt 26. Jun 2009, 10:48
In meinem Fall wurde die bemängelte Unit2 ja gar nicht in der Unit1 referenziert.
Das hatte mich so sehr gewundert. Als würde der Kreis hier nicht nur aus zwei Units bestehen
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.332 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Zirkuläre Uni-Referenz einer Unit auf sich selbst?

  Alt 26. Jun 2009, 10:53
Ja, z.B.:
Code:
Unit1:
uses Unit2;

Unit2:
uses Unit3;

Unit3:
uses Unit1;
Was passiert ist, dass der Compiler den Interfaceteil von Unit1 abarbeitet, dabei die Referenz auf Unit2 findet, also erst den dort abarbeitet, dort die Referenz auf Unit3 finden, ...
So, jetzt müsste erst der komplette Interfaceteil von Unit1 abgearbeitet werden um den von Unit3 abzuarbeiten. Und damit schließt sich der Kreis.

Da Delphi einen Single-Pass-Compiler hat, lässt sich das nicht anders lösen als eine der Units nach implementation zu verschieben. Dieser Teil der Unit wird erst danach abgearbeitet.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Oracle
(Gast)

n/a Beiträge
 
#7

Re: Zirkuläre Uni-Referenz einer Unit auf sich selbst?

  Alt 26. Jun 2009, 11:28
Aha, also gehts tatsache auch über mehr als 2 Units. Super dann weiss ich bescheid. Die entsprechende Unit zu finden kann in dem Fall allerdings mühsehlig sein.
Aber danke
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:58 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