AGB  ·  Datenschutz  ·  Impressum  







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

Circular unit reference

Ein Thema von Klaus01 · begonnen am 13. Nov 2013 · letzter Beitrag vom 13. Nov 2013
Antwort Antwort
Klaus01

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

Circular unit reference

  Alt 13. Nov 2013, 11:19
Hallo,

wenn ich mit build mein Programm erstelle, bekomme ich diese Fehlermeldung um die Ohren gehauen:

[DCC Fatal Error] basicList.pas(5): F2047 Circular unit reference to 'dbInterface'

Die Unit basicList sieht so aus:
Delphi-Quellcode:
unit basicList;

interface
uses
   contnrs, listTypes, dbInterface;

Die Unit dbInterface sieht so aus:
Delphi-Quellcode:
unit dbInterface;

interface
uses
 Dialogs, DB, DBAccess, Uni, postgreSQLUniProvider, lab, listTypes,
 rack, device, deviceType, powerUnitType, powerUnit, deviceGroup, globalConst;
Ich sehe nicht, dass hier eine zirkulare Referenz besteht.
In der Unit dbInterface wird die Unit basicList nicht eingebunden.

Stehe da auf dem Schlauch..

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: Circular unit reference

  Alt 13. Nov 2013, 11:22
Der Kreis muss ja nicht zwingend aus nur 2 Units bestehen. Du müsstest also mal alle uses-Abschnitte dieser units durchgehen ( Dialogs, DB, DBAccess, Uni, postgreSQLUniProvider, lab, listTypes,
rack, device, deviceType, powerUnitType, powerUnit, deviceGroup, globalConst ) und gucken, ob da vielleicht irgendwo basicList eingebunden wird.
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#3

AW: Circular unit reference

  Alt 13. Nov 2013, 11:25
In der Unit dbInterface wird die Unit basicList nicht eingebunden.
Nicht direkt, aber vielleicht indirekt:

Unit A uses Unit B
Unit B uses Unit C
Unit C uses Unit A
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Circular unit reference

  Alt 13. Nov 2013, 11:27
Müsste er nicht bei "Projekt erzeugen" an die problematische Stelle springen?
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Klaus01

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

AW: Circular unit reference

  Alt 13. Nov 2013, 11:52
Müsste er nicht bei "Projekt erzeugen" an die problematische Stelle springen?
Da zeigt der Cursor auf den Eintrag "dbInterface" in der Unit basicList.
Mit der oben genannten Fehlermeldung.

Die anderen Units werde ich auch überprüfen...

Hoffe ich finde etwas ...

Danke und Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Circular unit reference

  Alt 13. Nov 2013, 13:05
Die Unit basicList dürfte eigentlich die Unit dbInterface gar nicht benützen, denn "basic" deutet schon im Namen an dass in der Unit eine Basisklasse steckt.
Erst in einer abgeleiteten Klasse kommt dann der Zugriff auf Datenbanken ins Spiel.
Es gibt auch andere Möglichkeiten die Umklammerung der gegenseitigen Abhängkeiten aufzulösen.

Auf jeden Fall zeigt eine Circular Unit Reference an dass es Probleme beim Design der Klassen gibt.
Wenn man nur die Circular Unit Reference beseitigt aber nicht etwas tiefer gräbt ist es relativ wahrscheinlich dass man später wieder Probleme bekommt.
fork me on Github
  Mit Zitat antworten Zitat
Klaus01

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

AW: Circular unit reference

  Alt 13. Nov 2013, 14:50
sodele,

es war in etwa so wie bcvs es beschrieben hat.

Ich werde dann im Klassendesign etwas ändern.

In der basicList wollte ich alle Funktionen kapseln welche auch die abgeleiteten Klassen zwingend benötigen.

Danke für die Denkanstösse.
Grüße
Klaus
Klaus

Geändert von Klaus01 (13. Nov 2013 um 14:53 Uhr)
  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 07:59 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