PDA

Ver la Versión Completa : Valores entre formularios mdi


ctronx
15-06-2004, 02:13:45
saludos, mi problema creo que es simple, intento pasar un simple valor de un formulario a otro formulario, ambos hijos dentro de un formulario MDI

form2.Edit1.Text:=form3.Edit1.Text;

incluso ya declare uses unit2; y no me marca ningun error de sintaxis y corre bien hasta que presiono el boton con el codigo anterior donde quiero pasar el valor de un edit al de otro formulario y entonce me manda un error de violacion de acceso a una direccion de memoria o algo asi.

gracias por la ayuda que puedan darme.

weke
15-06-2004, 07:04:07
Buenas!
Prueba a declararte un atributo público en el formulario del que obtienes el valor, al que le asignes el valor del Edit que quieres pasarle al otro formulario.

nuevo_atributo:=form3.Edit1.Text;

Y desde el otro formulario accede a ese atributo.

form1.Edit1.Text:=form3.nuevo_atributo;

Así he pasado yo algunos datos.
No se si es la mejor solución, pero a mi me funcionaba. Espero que te sirva.
Un saludo.

eduarcol
15-06-2004, 16:29:17
violacion de acceso a una direccion de memoria o algo asi.


De hecho el error comienza asi "Acces Violation of Address" y ocurre por que no has creado alguno de los formularios, o si los creastes no estan con ese nombre, chequea y nos avisas

ctronx
15-06-2004, 17:47:26
creo que el problema "si" es en la creacion del formulario pero no se exactamente donde, tengo el formulario 1 que es el principal, el formulario 2 que es mdi child y que al presionar un boton crea al formulario3 tambien mdichild con el siguiente codigo

with TForm3.Create(self) do
begin
//propiedades del formulario child
end;


el formulario3 aparece de manera normal y cuando le doy clic a un boton que puse para cerrarlo con el codigo

form3.close;

desde ahi me marca ese error de violacion de acceso, como lo podre corregir?

espero me puedan ayudar, lo por el momento le sigo buscando sin tener exito:( .

gracias

guillotmarc
15-06-2004, 18:11:40
Hola.

La variable Form3 no está inicializada y no apunta a ningún formulario.

Prueba creando el Formulario así :

Form3 := TForm3.Create(Self);
with Form3 do
begin
//propiedades del formulario child
end;

NOTA : Cuando tengas dos formularios del tipo TForm3 abiertos a la vez, vas a tener un problema, puesto que la variable global Form3 solo va a apuntar a uno de ellos (al último que hayas creado). De manera que solo podrás cerrar el último formulario abierto (al que apunta la variable Form3). Para solventar esto, en lugar de utilizar las variables globales Form3, Form4, ..., deberás buscar otro sistema.

Saludos.

ctronx
16-06-2004, 22:19:01
gracias lo que dice guillo me funciono bien.