casa
Top.Mail.Ru Yandeks.Metrika
Forum: "Principale";
Archivio attuale: 2002.01.08;
Scarica: [xml.tar.bz2];

giù

Riferimento di classe circolare Trova rami simili


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

Un tale problema
T1 = classe
F: T2;
fine;
T2 = classe
F: T1;
fine;
così risolto
T2 = classe;
T1 = classe
F: T2;
fine;
T2 = classe
F: T1;
fine;
Domanda: Esiste una soluzione per il caso quando le classi T1 e T2
situato in unità diverse "ah?
Non posso fare qualcosa: <



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

No, certo. E perché?

È possibile dichiarare un antenato di T2 solo nell'ambito di T1.



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

Una domanda generalmente non idle.
Sarebbe auspicabile che le classi avessero collegamenti reciproci l'una contro l'altra, ma per alcune ragioni non possono essere inserite in un modulo: sono TForm.
Mentre lo faccio attraverso un intermediario - una classe che conosce entrambi,
e ognuno di loro lo conosce. Attraverso questo intermediario, si accedono l'un l'altro.
Getta una piccola idea di conoscenza diretta delle classi di cui sopra.
Bene, almeno suggerisco dove scavare :)



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

Non posso dire esattamente come può essere fatto in Delphi, ma in C ++ c'è una cosa come classi amichevoli,
vale a dire le classi dichiarate amichevoli hanno accesso a tutti i campi (metodi?) di un'altra classe, anche a quelli
nella sezione Privat descritta. So che a Delphi tutte le classi situate in una unità sono considerate amichevoli, ma ecco come
fare lo stesso per diverse unità ??




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

Il problema è che le classi dovrebbero essere descritte nella sezione interfaccia (a proposito, l'accesso ai campi privati, come b, non è stato discusso), e i riferimenti circolari in questa sezione sono severamente proibiti. Il modo più corretto:

unità Unit1; interfaccia usi ; ; tipo TForm1 = class (TForm) fldForm2: TForm; procedura doSomeThing; fine ; implementazione usi Unit2; procedura TForm1.doSomeThing; iniziare (fldForm2 come TForm2) .TForm2OnlyProperty: = AnyValue; fldForm2.TFormProperty: = AnotherValue fine ; fine

E in modo abbastanza simile - Unit2, solo uno e due posti cambiano posizione.



Pagine: 1 tutto il ramo

Forum: "Principale";
Archivio attuale: 2002.01.08;
Scarica: [xml.tar.bz2];

al piano di sopra









Memoria: 0.57 MB
Ora: 0.028 c
14-22397
morto
2001-11-10 18:49
2002.01.08
Qualcuno ha una mappa di contorno gif o jpg del mondo?


14-22343
Smeriglio
2001-11-02 14:17
2002.01.08
Con una risata quasi cadde a terra!


3-21988
Andrew
2001-11-29 22:16
2002.01.08
SQL


1-22096
Mikhalyov Dmitry
2001-12-19 15:55
2002.01.08
Informazioni su TObject in eventi


1-22018
DelphiG
2001-12-18 01:51
2002.01.08
Stampa il testo da Memo! Ho qualcosa che non va ....





afrikaans albanese Arabic armeno Azero basco bielorusso Bulgarian catalano Cinese (semplificato) Cinese (tradizionale) croato Ceco danese Dutch Inglese estone filippina Finnish Francese
galiziano georgiano Tedesco greco Creolo haitiano ebraico hindi ungherese islandese Indonesian irlandese Lezioni Giapponese Korean lettone lituano macedone Malay maltese Norwegian
persiano polacco Portoghese rumeno Russian serbo Slovak sloveno Spagnolo swahili Swedish Thai turco ucraino Urdu vietnamita gallese yiddish bengalese bosniaco
Cebuano esperanto Gujarati Hausa Hmong Igbo giavanese kannada khmer lao latino maori marathi mongolo nepali punjabi somalo tamil telugu Yoruba
zulù
Inglese Francese tedesco italiano portoghese russo spagnolo