|
Página 2 de 2
|
Guardar La Posicion De Todos Los Formularios Abiertos
Autor |
Mensaje |
fabianfv
Analista Programador
Registrado: Octobre 2009
Mensajes: 495
Edad: 50 Ubicación:
|
Re: Guardar La Posicion De Todos Los Formularios Abiertos
Citar:
Con todo el cariño y respeto debo decir que mi propuesta es la mejor y mas sencila je je je.
Si interpretas el problema de Julio observarás que en realidad Él no tiene necesidad de contabilizar las instancias de los formularios.
=================== Cómo programar con Gambas
Speed Books: informática libre.
|
#11 Martes, 14 Diciembre 2010, 20:37 |
|
|
ahtonio
Programador
Registrado: Octobre 2009
Mensajes: 144
Edad: 58 Ubicación: Zaragoza
|
Re: Guardar La Posicion De Todos Los Formularios Abiertos
Hola colegas. Creo que una mezcla de todo lo expuesto sería una buena solución.
Y lo que yo haría sería:
En el evento de salida de la ventana principal - Application.MainWindow - haría algo así como:
DIM hfrm AS Form
FOR EACH hfrm IN Windows
'Pon las instrucciónes que graben en un ficherito que siempre se abrirá de nuevo (CREATE)
' con los valores de las prop. X, Y, W, H y si las necesitas ClientX, ClientY, ClientH, ClientW
' Al iniciar la aplicación consulta si existe este fichero en el home del usuario y restaura todas
' las ventanas en el presupuesto en cuestión.
'Asi de sencillo
'También deberas grabar la clave del presupuesto para recuperarlo, y demás información necesaria
NEXT
Espero haber sido de ayuda.
Antonio
última edición por ahtonio el Martes, 14 Diciembre 2010, 22:54; editado 1 vez
|
#12 Martes, 14 Diciembre 2010, 22:53 |
|
|
fabianfv
Analista Programador
Registrado: Octobre 2009
Mensajes: 495
Edad: 50 Ubicación:
|
Re: Guardar La Posicion De Todos Los Formularios Abiertos
ahtonio:
La clase Application.MainWindow no tiene eventos, por lo que no es posible hacerlo de ese modo. Se podría pensar que la aplicación tenga un formulario del que dependan todos los demás y entonces utilizar los eventos close y open de ese form principal, pero esto tiene dos problemas insalvables:
- Los formularios de una aplicación no tienen porqué depender de uno que sea el principal. Se tendría que forzar una decisión de diseño por razones que no son pertinentes al diseño precisamente.
- Aún cuando todos los formularios dependan de uno que sea el principal, la única manera de que esto funcione es que el usuario cierre la aplicación desde ese form, sin cerrar previamente todos los otros formularios y eso obliga a que todos los formularios sean no-modales, es decir, otra vez se estaría forzando una decisión de diseño, pero además, sin la certeza de que esto funcione porque depende de cómo el usuario interactúe con el programa. Si el usuario cierra los formularios antes de cerrar el principal, ya no queda información de configuración que guardar.
=================== Cómo programar con Gambas
Speed Books: informática libre.
|
#13 Miercoles, 15 Diciembre 2010, 14:53 |
|
|
ahtonio
Programador
Registrado: Octobre 2009
Mensajes: 144
Edad: 58 Ubicación: Zaragoza
|
Re: Guardar La Posicion De Todos Los Formularios Abiertos
Tiene toda la razon Fabian. No obstante, ¿Como conseguir que no se cierre la aplicación sin pasar por el formulario principal?. Una solución podría ser que en el evento close de todos los forms hijos de la aplicación, en el evento close se lanzase mediante show, para que siempre estuviese abierto al fin, pero ¿Que pasará cuando cierre el principal y haya abiertos forms que muestren el principal? Es la pescadilla que se muerde la cola. Habrá que pensar........
Antonio
xxx
|
#14 Viernes, 17 Diciembre 2010, 10:43 |
|
|
fabianfv
Analista Programador
Registrado: Octobre 2009
Mensajes: 495
Edad: 50 Ubicación:
|
Re: Guardar La Posicion De Todos Los Formularios Abiertos
Antonio: me parece claro que en ese camino hay demasiadas complicaciones. Es más fácil adecuar la solución que propuso JGuardon, así:
'En cada formulario
PUBLIC SUB Form_Close()
Config.Save(ME.TOP, ME.X, ME.Y, ME.H, ME.W, aFile AS String)
END
'En una clase estática (Config)
'Puede que se necesiten parámetros adicionales o que alguno de estos no sea adecuado:
STATIC PUBLIC SUB Save(top AS Integer, x AS Integer, y AS Integer, h AS Integer, w AS Integer, aFIle AS String)
'Guardar los datos mediante Settings
END
=================== Cómo programar con Gambas
Speed Books: informática libre.
|
#15 Sabado, 18 Diciembre 2010, 15:06 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 2 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|