Casa
Top.Mail.Ru Yandeks.Metrika
Foro: "Principal";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];

abajo

Referencia de clase circular Encontrar ramas similares


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

Tal problema
T1 = clase
F: T2;
fin;
T2 = clase
F: T1;
fin;
tan resuelto
T2 = clase;
T1 = clase
F: T2;
fin;
T2 = clase
F: T1;
fin;
Pregunta: ¿Existe una solución para el caso cuando las clases T1 y T2?
ubicado en la unidad diferente "ah?
No puedo hacer algo: <



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

No, por supuesto. Por que

Solo puede declarar un antepasado de T2 en el ámbito de T1.



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

Una pregunta generalmente no inactiva.
Sería deseable que las clases tuvieran vínculos mutuos entre sí, pero por algunas razones no se pueden colocar en un módulo, son TForm.
Mientras hago esto a través de un intermediario - una clase que conoce ambos,
y cada uno de ellos lo conoce. A través de este intermediario, acceden entre sí.
Haz una pequeña idea de la relación directa de las clases anteriores.
Bueno, al menos insinúa dónde cavar :)



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

No puedo decir exactamente cómo se puede hacer en Delphi, pero en C ++ existen las clases amigas,
es decir, Las clases declaradas como amigas tienen acceso a todos los campos (¿métodos?) de otra clase, incluso aquellos
En la sección privada descrita. Sé que en Delphi, todas las clases ubicadas en una unidad se consideran amigables, pero aquí es cómo
hacer lo mismo para diferentes unidades ???




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

El problema es que las clases deben ser descritas en la sección. interface (por cierto, el acceso a campos privados, como b, no fue discutido), y las referencias circulares en esta sección están estrictamente prohibidas. La forma más correcta:


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.


Y de manera muy similar: Unit2, solo uno y dos lugares cambian de lugar.



Páginas: 1 rama entera

Foro: "Principal";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];

arriba





Memoria: 0.56 MB
Tiempo: 0.027 c
14-22334
Alex_A
2001-11-03 12:14
2002.01.08
GRÁFICOS !!!!!!!!! IMPORTANTE !!!!!!!!!!!!!!!!! AYUDA !!!!!!!!!!!!!!!!


14-22361
Nikolay
2001-11-08 00:17
2002.01.08
Sí ...............................


14-22342
Denso
2001-11-05 18:52
2002.01.08
La competencia Fondo de pantalla para el juego (sitio) Sea Fight!


1-22244
Socol
2001-12-15 15:42
2002.01.08
Descargar archivo!


14-22363
Denso
2001-11-02 18:16
2002.01.08
Entonces ...?





africaans albanés Arabic armenio Azerbaiyán vasco Bielorruso Bulgarian Catalán Chino (simplificado) Chino (tradicional) Croata Checo Danés Dutch Inglés Estonia filipina Finnish French
gallego georgiano Alemán Griego criollo haitiano Hebreo hindi Húngaro islandés Indonesian irlandés Italiano Japonés Korean letón lituano macedonio Malay maltés Noruego
persa polaco Portuguese Rumano Ruso Serbio Slovak Esloveno Español swahili Sueco Thai turco ucranio Urdu vietnamita galés yídish bengalí bosnio
cebuano esperanto gujarati hausa hmong igbo javanés kannada khmer lao latín maorí marathi mongol nepali punjabi somalí Tamil telugu yoruba
zulú
Английский Francés Alemán Italiano portugués Русский Español