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 interface (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;

interface

uses
<стандартный набор модулей>;

type
TForm1 = class(TForm)
fldForm2 :TForm;
procedure doSomeThing;
end;

implementation

uses
Unit2;

procedure TForm1.doSomeThing;
begin
(fldForm2 as TForm2).TForm2OnlyProperty := AnyValue;
fldForm2.TFormProperty := AnotherValue
end;

end.


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.56 MB
Zeit: 0.043 c
1-22243
Gumbert-Gumbert
2001-12-16 22:22
2002.01.08
Wie bekomme ich die Wurzel des n-ten Grades in Delphi?


1-22127
Delphimun
2001-12-15 13:43
2002.01.08
Wie speichere ich den Cursor von einer Ressource zu einer Variablen in einer Datei (cur)?


3-21929
@ Andrew
2001-12-04 11:38
2002.01.08
Hallo alle! Ich mache ein Tagebuch. Wo war die Aufgabe?


4-22498
cher_gvf
2001-11-05 20:12
2002.01.08
Woher weiß man, ob ein solcher Prozess läuft?


1-22115
Derzky
2001-12-19 18:14
2002.01.08
Wie man Datumsangaben und den Unterschied zwischen ihnen vergleicht, um eine ganze Zahl zu erhalten





Afrikanisch Albanien Arabisch Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarisch katalanisch Chinesisch (vereinfacht) Chinesisch (traditionell) kroatisch Tschechisch Dänisch Niederländisch Englisch estnisch Philippinisch Finnisch Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole Hebräisch Hindi ungarisch isländisch Indonesian irisch Italienisch Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegisch
persisch Polnisch Portugiesisch Rumänisch Russisch serbisch Slovakisch Slowenisch Spanisch Suaheli Schwedisch 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