Nach Hause
Top.Mail.Ru Yandeks.Metrika
Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

Nach unten

Zirkuläre Klassenreferenz Finden Sie ähnliche Zweige


oomneeq   (2001-12-14 21:26) [0]

So ein Problem
T1 = Klasse
F: T2;
end;
T2 = Klasse
F: T1;
end;
so gelöst
T2 = class;
T1 = Klasse
F: T2;
end;
T2 = Klasse
F: T1;
end;
Frage: Gibt es eine Lösung für den Fall, dass die Klassen T1 und T2
befindet sich in einer anderen Einheit "ah?
Ich kann nichts machen:



Иван Шихалев   (2001-12-14 22:03) [1]

Nein, natürlich. Und warum?

Sie können nur einen Vorfahren von T2 im Gültigkeitsbereich für T1 deklarieren.



oomneeq   (2001-12-17 12:00) [2]

Eine Frage im Allgemeinen nicht müßig.
Es wäre wünschenswert, dass Klassen gegenseitige Verbindungen zueinander haben, aber aus bestimmten Gründen nicht in ein Modul eingeordnet werden können - sie sind TForm.
Während ich dies durch einen Vermittler tue - eine Klasse, die beide kennt,
und jeder von ihnen kennt ihn. Über diesen Vermittler greifen sie aufeinander zu.
Machen Sie sich ein Bild von der direkten Bekanntschaft mit den oben genannten Klassen.
Naja, zumindest einen Hinweis, wo man graben kann :)



Fellomena   (2001-12-17 12:36) [3]

Ich kann nicht genau sagen, wie es in Delphi gemacht werden kann, aber in C ++ gibt es so etwas wie freundliche Klassen,
d.h. Klassen, die als freundlich deklariert wurden, haben Zugriff auf alle Felder (Methoden?) einer anderen Klasse, auch auf diese
im Privatteil beschrieben. Ich weiß, dass in Delphi alle Klassen, die sich in einer Einheit befinden, als freundlich angesehen werden
mach das selbe für verschiedene einheiten ???




Иван Шихалев   (2001-12-17 19:17) [4]

Das Problem ist, dass Klassen im Abschnitt beschrieben werden sollten Schnittstelle (Der Zugriff auf private Felder wie b wurde übrigens nicht behandelt.) Zirkuläre Verweise in diesem Abschnitt sind strengstens untersagt. Der richtigste Weg:

unit Unit1; Schnittstelle verwendet ; ; Typ TForm1 = Klasse (TForm) fldForm2: TForm; procedure doSomeThing; Ende ; Implementierung verwendet Unit2; procedure TForm1.doSomeThing; beginne (fldForm2 als TForm2) .TForm2OnlyProperty: = AnyValue; fldForm2.TFormProperty: = AnotherValue Ende ; ende .

Und ganz ähnlich - Unit2, nur ein und zwei Stellen wechseln die Stelle.



Seiten: 1 ganze Branche

Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

nach oben









Speicher: 0.82 MB
Zeit: 0.025 c
4-22463
Dmitry Alferev
2001-11-01 23:38
2002.01.08
FindResource findet keine Ressource


7-22418
Mikle
2001-09-20 09:06
2002.01.08
Dringend! Comp statt des Druckers.


3-21925
Nailka
2001-12-04 16:16
2002.01.08
Das Problem beim Finden des Long-Felds in Oracle


4-22469
Zibaro
2001-11-01 19:38
2002.01.08
Bild im Popup-Menü (wie von der Schaltfläche)


1-22155
Kunst
2001-12-20 16:32
2002.01.08
Sperren Sie den Ordner!





Afrikanisch Albanien Arabisch Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarian katalanisch Chinesisch (vereinfacht) Chinesische Tradition) kroatisch Tschechisch Dänisch Dutch Englisch estnisch Philippinisch Finnish Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole Hebräisch Hindi ungarisch isländisch Indonesian irisch Italian Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegian
persisch Polnisch Portugiesisch Rumänisch Russisch serbisch Slovakisch Slowenisch Spanisch Suaheli Swedish Thai Türkisch Ukrainisch Urdu Vietnamesisch Walisisch Jiddisch Bengalisch bosnisch
cebuano Esperanto Gujarati Hausa Hmong igbo Javanisch kannada khmer Laotisch Lateinisch Maorisch Marathi Mongolisch nepali Pandschabi Somalisch Tamilisch Telugu Yoruba
Zulu
Английский Französisch Deutsch Italienisch Португальский Russisch Spanisch