![]() |
Algún evento que trabaje con showmodal?
Hola gente, tengo el siguiente problema que me tiene hace varias horas dando vueltas, tal vez puedan ayudarme. Tengo un Form A y tengo un Form B. Con el Form A abierto, abro el Form B con Showmodal para que no puedan usar el Form A, ni ningun otro hasta cerrar el Form B. Hasta ahí justo lo que necesitaba. Mi duda es, el Form A, ¿ejecuta algún evento cuando el Form B se cierra?. onActivate no hace nada, y las soluciones que encontré son bastante feas (un timer que revisa desde el Form A que el Form B este abierto, o el evento onPaint). Puedo aceder al Form B desde el Form A, al revés no por una cuestión del diseño de la aplicación. Muy agradecido a cualquiera que lea.
|
Hola
No entiendo. Saludos |
cerrar form
puedes programar el evento onclose del formulario B para que ejecute cambios en el formulario A.
Saludos...:cool: |
Como decía Jack el Destripador, vayamos por partes...
Cita:
Cita:
No es tan complicado, lo complejo es evitar las llamadas circulares, pero ése es otro tema... |
mmm y si posteriormente al frmB.showmodal en el fmrA ejecutas la accion que deseas...
algo asi
|
@[Caral]
Cuando un form se muestra modal, el resto se "desactiva" por decirlo de alguna forma, y luego se vuelven a activar, pero en ningún momento se ejecuta el evento onDeactivate u onActivate. Mi pregunta es, hay algún evento que SI ejecuten siempre en estos casos? |
Hola
Cita:
Lo correcto es crear y destruir los forms. Desde el form que llama, en este caso el form1. Se crea, se muestra y se libera. Saludos |
Gracias por las ideas pero ya las había intentado todas, el tema no es pasar la información entre los formularios, sino ejecutar la instrucción precisamente en el momento que el formulario se cierra. El tema es que la estructura de formularios que manejo es bastante compleja, y ejecutar una funcion del Form A desde B se puede pero es bastante complejo por la cantidad de variables posibles.
@oscarac, probando tu idea... |
Hola
Cita:
Saludos |
el tema es que los forms no los estoy creando dinamicamente. En general hacerlo así funciona bastante bien. Salvo en algunos casos especificos donde creo que lo voy a solucionar asegurandome de pasarle la referencia de que objeto tiene que ejecutar que funcion al cerrarse. Muhas gracias por su ayuda, al final la solución era mucho mas sencilla de lo que yo quería hacer. Creo que pasar tanto tiempo en PHP me arruino. :P
|
Hola
El asunto va mas alla de crear el form dinamicamente. Si se crean todos al inicio del programa, este se vuelve muy lento. Para que hacerlo se se va a usar un showModal ?, eso esta bien para un sencillo show. Saludos |
Cita:
y como lo solucionaste? pregnuto por siacaso a alguien mas se le presente la misma inquietud |
Hola study.
Si no entendí mal tu planteo, podrías hacer de este modo: FormA:
FormB:
Saludos. |
Así funciona bien en un caso básico. Ahora el tema es que tengo uno o dos casos donde por ejemplo formA ejecuta formB que ejecuta formA (no me miren así, se que es una aberración de diseño, lo voy a arreglar). Probablemente termine siendo algo tipo se crea y se ejecuta formA (TFormA) que crea y ejecuta FormB (TformB) que crea y ejecuta FormC (TFormA). Espero que le sirva al proximo yo que venga con la misma duda. @ecfisa, muy buena la de crear mi propio evento, en este caso creo que no va a ser necesario, pero me queda la nota para casos futuros. |
Cita:
Pues justo iba a proponer lo mismo que Ecfisa; Es decir, si necesitas un evento, crearlo del tipo TNotifyEvent, que justo está para eso (para notificar cosas). Creo que es el más correcto y elegante. |
Yo no estoy seguro de haber entendido bien el problema, ya que al mostrarse modal la siguiente linea de código que se procesa despues de que se cierre la ventana es la que hay justo despues de la que mostraba el form modal. Por lo que he leido, y pido disculpas si no entendi bien, creo que lo que sucede es el formulario desde el que se llama al modal necesita información seleccionada o añadida en el modal. Lo que yo suelo hacer en estos casos es crear un DataModule común a ambos formularios en el que hago todo el trabajo duro, dejando a los forms básicamente como interfaces con el usuario.
Ya digo que estoy suponiendo que realmente lo que pasa en esta aplicación en concreto es que un monton de formularios deben de compartir la información entre ellos y entendiendo que el problema básico con el que te estas encontrando es el "traspaso de datos" entre ellos. |
La franja horaria es GMT +2. Ahora son las 09:55:33. |
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