Autor Beitrag
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Di 23.01.07 20:01 
Ich habe in main einen Typ definiert:
ausblenden Delphi-Quelltext
1:
TVisibility = (viPrivate, viPublic, viProtected);					

Dieser wird in der Unit ObjectMethod benötigt.
Darum steht main in der uses-Liste von ObjectMethod:
ausblenden Delphi-Quelltext
1:
uses Parameterlist,main,Objectclass;					

Da ich aber in main mit der Klasse aus ObjectMethod arbeiten will, ist ObjectMethod in der uses-Liste von main eingetragen:
ausblenden Delphi-Quelltext
1:
2:
3:
uses
  //Own Units
  ... ObjectMethod ...

Nun meint Delphi aber folgendes:
Error hat folgendes geschrieben:
[Fataler Fehler] main.pas(7): Überkreuzender Bezug zweier Units auf 'main'

Was kann ich dagegen tun?

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Jann1k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: Di 23.01.07 20:06 
Definier die Klasse in tVisibility im zweiten Formular, wenn das Konzeptmäßig geht.
Marco D. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Di 23.01.07 20:09 
user profile iconJann1k hat folgendes geschrieben:
Definier die Klasse in tVisibility im zweiten Formular, wenn das Konzeptmäßig geht.

Ok, also:
- TVisibility ist ein Typ -> aber das ist auch egal ;)
- es brauchen noch mehr Units TVisibility, deswegen wollte ich es an einer zentralen Stelle haben.
- ist es ein Problem, wenn ich TVisibility in mehreren Units gleich definiere?

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Jann1k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: Di 23.01.07 20:14 
Zitat:

Ok, also:
- TVisibility ist ein Typ -> aber das ist auch egal
- es brauchen noch mehr Units TVisibility, deswegen wollte ich es an einer zentralen Stelle haben.
- ist es ein Problem, wenn ich TVisibility in mehreren Units gleich definiere?


Ganz ehrlich, ich hab keine Ahnung was der Unterschied zwischen Typ und Klasse ist, werd ich mich wenn ich später wieder da bin mal informieren.

Ob es ein Problem darstellt dieselbe Klasse in mehreren Units gleich zu definieren, kann ich dir nicht sicher sagen, so wie ich Delphi kenne, wird es ein Problem damit haben.

Spricht etwas dagegen eine eigene Unit für TVisibility zu erstellen?
Marco D. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Di 23.01.07 20:17 
user profile iconJann1k hat folgendes geschrieben:

Ganz ehrlich, ich hab keine Ahnung was der Unterschied zwischen Typ und Klasse ist, werd ich mich wenn ich später wieder da bin mal informieren.

Ja mach das. ;)
user profile iconJann1k hat folgendes geschrieben:

Ob es ein Problem darstellt dieselbe Klasse in mehreren Units gleich zu definieren, kann ich dir nicht sicher sagen, so wie ich Delphi kenne, wird es ein Problem damit haben.

Es muss aber eine einfachere Lösung geben!
user profile iconJann1k hat folgendes geschrieben:

Spricht etwas dagegen eine eigene Unit für TVisibility zu erstellen?

Ja tut es: Warum soll ich für eine Typdeklaration eine eigene Unit erstellen? Das ist imho überflüssig!

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 23.01.07 20:48 
Hallo!

Brauchst Du in einer der Units die jeweils andere nur im implementation- und nicht schon im interface-Teil? Dann kannst Du die uses-Klauses dorthin verlagern, das sollte den überkreuzenden Bezug auflösen.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Marco D. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Di 23.01.07 20:56 
user profile iconChristian S. hat folgendes geschrieben:
Hallo!

Brauchst Du in einer der Units die jeweils andere nur im implementation- und nicht schon im interface-Teil? Dann kannst Du die uses-Klauses dorthin verlagern, das sollte den überkreuzenden Bezug auflösen.

Grüße
Christian

Habe jetzt auf Hinweis BenBe's doch eine zusätzlich Unit genommen. ;)
Was ist denn der Unterschied zwischen den beiden uses-Listen?

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 23.01.07 21:16 
Lies Dir in der Delphi-Sprachreferenz (in der Hilfe enthalten) einfach mal den entsprechenden Abschnitt unterhalb von "Programme und Units" durch. :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Marco D. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: So 28.01.07 19:27 
Habe wieder das Problem.
Ich brauche aber beide Units jeweils im Interface der anderen, ich kann sie nicht unter implementation schieben!
Was tun?
Da muss es doch eine Lösung für geben!

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: So 28.01.07 19:40 
(a) mache eine Unit daraus
(b) lagere den Teil, den du benötigst in eine 3.Unit aus
(c) ???

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Marco D. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: So 28.01.07 19:46 
user profile iconKroko hat folgendes geschrieben:
(a) mache eine Unit daraus
(b) lagere den Teil, den du benötigst in eine 3.Unit aus
(c) ???

Habe jetzt eine draus gemacht.
Nächstes Problem:
Klasse B ist sozusagen unter Klasse A deklariert.
Klasse A soll eine Instanz von Klasse B enthalten Diese ist aber erst unten deklariert -> Undefinierter Bezeichner!
Man könnte die ja einfach vertauschen! Aber: Klasse B soll auch eine Instanz von Klasse A enthalten. Dann tritt der gleiche Fehler auf, nur umgekehrt.
BenBe meinte was von Forward-Deklaration, aber das geht lauf DOH nur bei Methoden. :roll: Was tun?

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 28.01.07 20:30 
user profile iconMarco D. hat folgendes geschrieben:
Was tun?
Ein bisschen Experimentierfreude zeigen oder im Crashkurs nachschauen ;-)
www.christian-stelzm...hkurs.htm#forwarding

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".