![]() |
Formularios MDI
Hola..
Una pregunta.. Usando forms MDIchild, como puedo hacer pasar los datos de un formulario MDIChild a otro Mdichild? La unica forma que encontre es pasandolos al mainform (MDIForm) y desde ahi tomarlo en un MDIchild. como se puede hacer sin hacer todos esos pasos? Gracias |
Hola,
Yo no sé cómo estás haciéndolo exactamente; a mí se me ocurre algo así: ¿Te parecen muchos pasos? ;) |
Yo tengo ese mismo problema.
Con el ejemplo ese que nos pasaste tampoco funciona. Resulta que yo tengo un mdichild (form8) el cual tiene una grilla que al hacer doble click me habre otro mdichild (form10) el cual al ser mostrado necesita leer una variable publica del form8, por ejemplo yo lo hago asi: (Perdon, No se como se pega para que se vea en Código)
eso me muestra un numero asi 1324324234, aviendole asignado anteriormente un 5 por ejemplo La unica solucion que encontre que no me parece la adecuada (seguro hay otra forma que no la se) es crear la variable en el form1 y al hacer 2 click sobre la grilla asignar el valor en form1.varible y cuando se muestre el form10 leerla desde ahi, no es problema hacer eso cuando son 1 o 2 variables, el problema se me hace cuando tengo muchas variables para usarlas asi. Agradeceria si alguien tiene alguna ayuda. Gracias Walter |
Cita:
Hasta Luego - |
Aunque me parece que en el foro ya se ha tratado este problema y dado solución, les dejo más o menos como hacer lo que desean.
En la forma donde van a usar la información (Form10, por ejemplo), crean una propiedad pública tal que: Luego, en Form8, cuando se desea llamar a Form10, se puede hacer algo como esto: Ya con eso, dentro de Form10 ya se puede usar el valor pasado desde la otra forma.
Saludos... |
agradesco las respuestas muy buenas y me funcionaron muy bien desde ya gracias
|
Marcos, hice exactamente lo que me explicaste en el post anterior
pero no hace nada, es decir le asigno un valor a la variable y cuando quiero ver si realmente lo asigno con el showmessage no me muestra nada, ni un numero cualquiera, es decir me sale el cartel vacio. En que le puedo estar fallando? es exactamente lo mismo hice.. Saludos walter |
walito Modifique tu post anterior para que vieras como se aplican las etiquetas Delphi ;), de esa manera puedes darle click en Editar y ver como lo hice.
|
Cita:
|
te explico mas o menos como lo uso yo.
Tengo el form1 que es el form principal del programa y es un MDIForm despues tengo 2 form, form2 y form3 q son MDIChild. Bien, cuando arranca el programa se crean todos los form y luego los cierro(close) a todos los MDIChild, osea q ya estan creados. Luego creo la propiedad que mensiona maeyanes en Form3 y desde form2 hago lo siguiente cuando hago doble click en una grilla por ejemplo:
y cuando muestro el form3 en un boton le pongo:
y no me muestra nada. Que puedo estar haciendo mal? gracias walter |
No veo nada extraño en ese código, pero no indicas como declaras la propiedad. Compara tu código con este que te pongo:
Con esto debería funcionar lo que estás haciendo. Comentas que cierras todas las formas MDIChild al momento de ejecutar tu programa, si no quieres que esas formas se creen automáticamente, quítalas de la lista de Auto-create forms de la pestaña Forms en las opciones del proyecto (Shift+Ctrl+F11). Saludos... |
Cita:
- Si estan minimizados, no tiene sentido que funcione mal. - si no están minimizados, entonces realmente no estan creados,es decir, se crearon, despues se destruyeron, pero el Form queda con una referencia inválida, de ahí que muestre el valor que pille en memoria.... pero tarde o temprano debería dar un Access Violation. En el el formClose de cada ventana, añade: Eso para el form2 y 3 Si al hacer ese cambio ves que tu programa empieza a dar Access Violation cada dos por tres, entonces, es que debes estudiar mejor como crear y destruir las ventanas. Haz este pequeño experimento y nos comentas ;) saludos |
La franja horaria es GMT +2. Ahora son las 03:11:32. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi