Hola, espero me puedan ayudar con este problema que tengo
Desde el Form1, el principal de la aplicacion, creo otro formulario, por ejemplo así:
Código:
uses Unit2; // Incluyo la referencia en el Uses
...
procedure TForm1.Button1Click(Sender: TObject);
var f2 : Tform2;
begin
f2:= TForm2.Create(self);
try
f2.ShowModal;
finally
f2.Free;
end;
end;
Si desde el Form2 quiero acceder a alguna objeto/propiedad del Form1, me basta con añadir en el Unit2 lo siguiente:
Código:
implementation
uses Unit1;
Hasta aquí todo bien, si ahora vuelvo a crear otro form desde el Form2, así:
Código:
uses Unit3; // Incluyo la referencia en Uses
...
procedure TForm2.Button1Click(Sender: TObject);
var f3 : Tform3;
begin
f3:=TForm3.Create(self);
try
f3.ShowModal;
finally
f3.Free;
end;
end;
Para acceder a algun objeto el Form2 desde el Form3 incluí:
Código:
implementation
uses Unit2;
Ahora al intentar asignarle un texto a un edit del Form2 desde el Form3, lanza una excepción EAccesViolation, y lo curioso es que en tiempo de diseño si que puedo acceder perfectamente a los objetos/propiedades del Form2.
Es mas, si incluyo Unit1 en el uses del form 3 si que puedo asignarle valores a los edit del Form1 sin problemas.
Intente crear la variable de tipo Form2 en el interface del Form1 para luego incluir el Unit1 en el Form3 y poder acceder de la forma:
Código:
f2.edit1.text :='algo'
pero tambien da problemas.