FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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.
|
#2
|
||||
|
||||
Hola
No entiendo. Saludos
__________________
Siempre Novato |
#3
|
||||
|
||||
cerrar form
puedes programar el evento onclose del formulario B para que ejecute cambios en el formulario A.
Saludos... |
#4
|
||||
|
||||
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...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco |
#5
|
||||
|
||||
mmm y si posteriormente al frmB.showmodal en el fmrA ejecutas la accion que deseas...
algo asi
__________________
Dulce Regalo que Satanas manda para mi..... |
#6
|
|||
|
|||
@[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? |
#7
|
||||
|
||||
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
__________________
Siempre Novato |
#8
|
|||
|
|||
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... |
#9
|
||||
|
||||
Hola
Cita:
Saludos
__________________
Siempre Novato |
#10
|
|||
|
|||
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
|
#11
|
||||
|
||||
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
__________________
Siempre Novato |
#12
|
||||
|
||||
Cita:
y como lo solucionaste? pregnuto por siacaso a alguien mas se le presente la misma inquietud
__________________
Dulce Regalo que Satanas manda para mi..... |
#13
|
||||
|
||||
Hola study.
Si no entendí mal tu planteo, podrías hacer de este modo: FormA:
FormB:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#14
|
|||
|
|||
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. Última edición por study fecha: 08-02-2012 a las 21:59:35. |
#15
|
||||
|
||||
+1
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.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#16
|
|||
|
|||
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. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como hacer que la app trabaje apenas se ejecute. | mibandeja | Varios | 4 | 10-09-2008 18:19:35 |
¿Cómo conocer algún dato de la tupla que ha producido el evento? | membrillo | Firebird e Interbase | 8 | 25-05-2007 16:33:54 |
Como hacer que mi alicación trabaje en Red? | difesa | Tablas planas | 1 | 07-11-2006 19:13:52 |
CxGrid - a quien trabaje con ella, Help ! | RJF | Varios | 2 | 14-10-2005 15:03:29 |
Que trabaje otro. | marcoszorrilla | Noticias | 6 | 20-07-2005 06:50:04 |
|