Cierre de un DIALOG

Cierre de un DIALOG

Postby antolin » Tue Nov 12, 2013 8:42 am

Hola foreros.

Cómo puedo saber si un dialog se ha cerrado pulsando el botoncito rojo con la cruz de la ezquina supeior derecha. Es que necesito saber si el dialogo se cerró desde ese botón de sistema para diversas acciones 'bLostFocus' de algunos controles.

Gracias
Peaaaaaso de foro...
antolin
 
Posts: 491
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Cierre de un DIALOG

Postby antolin » Tue Nov 12, 2013 10:26 am

Bueno ya he averiguado que cuando pulsamos el botoncito rojo de la cruz, el sistema manda el mensaje SC_CLOSE, vía DefWindowProc(), a la ventana que se va a cerrar.

Ahora tengo que averiguar como capturar ese mensaje en tiempo de ejecución.

¿Alguna pista?

Gracias
Peaaaaaso de foro...
antolin
 
Posts: 491
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Cierre de un DIALOG

Postby antolin » Tue Nov 12, 2013 10:44 am

Se ma he ocurrido que se podría añadir un DATA a TWindow que capturase el Último comando de SysCommand. Sería muy util para saber muchas cosas sobre el flujo del programa. Por ejemplo: si se va a jecutar el salvapantallaS, si se ha desplazado el contenidO de una ventana con el scroll, si se va a restaurar el tamaño de la ventana si se va a cambiar de tamaño, etc...

Por ejemplo:
Code: Select all  Expand view
DATA   nLastSys   AS NUMERIC  INIT 0
...
...

METHOD SysCommand( nWParam, nLParam )
   local bKeyAction, i

   ::nLastSys := nWParam   ...
   ...

return nil
Peaaaaaso de foro...
antolin
 
Posts: 491
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Cierre de un DIALOG

Postby joseluisysturiz » Tue Nov 12, 2013 7:54 pm

Considero que es menos problemas y control quitar esa opcion de cerrar el dialogo al igual que con la tecla ESC, asi se educa a los usuarios a usar las opciones de los sistemas, botones, menu, etc...solo mi opinion...saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Cierre de un DIALOG

Postby Antonio Linares » Wed Nov 13, 2013 11:09 am

Antolin,

Se podria implementar, como muchas más opciones que podrian implementarse, pero si su uso es algo puntual que solo vamos a necesitar ocasionalmente, es preferible modificar la clase, como has hecho.

Siempre he querido evitar que FiveWin crezca innecesariamente a base de ir implementandole más y más opciones. No es que tu opción no sea necesaria, pero si solo lo necesita un usuario, podemos aguardar. Comento esto en publico para que entendais que criterio sigo para añadir nuevas funcionalidades :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Cierre de un DIALOG

Postby hmpaquito » Wed Nov 13, 2013 11:17 am

Antonio Linares wrote:Se podria implementar, como muchas más opciones que podrian implementarse, pero si su uso es algo puntual que solo vamos a necesitar ocasionalmente, es preferible modificar la clase, como has hecho.

Siempre he querido evitar que FiveWin crezca innecesariamente a base de ir implementandole más y más opciones. No es que tu opción no sea necesaria, pero si solo lo necesita un usuario, podemos aguardar. Comento esto en publico para que entendais que criterio sigo para añadir nuevas funcionalidades :-)


Antonio,

Totalmente de acuerdo. Cuando yo tuve la necesidad de controlar la salida via el boton X, o de sus "hermanos" Alt-F4 o boton derecho raton sobre caption y cerrar fue suficiente con diferenciar de las salidas con los botones DE USUARIO Ok y Cancel. Ejemplo, si sale con Ok, valor de salida es 1, si con Cancel valor de salida es 2, resto de salidas valor de salida es Cero. Luego si el valor de salida es Cero es que se salio con las salidas del sistema, que pueden asumirse como hermanas e iguales.

Salvo que se quiera disintiguir entre salida boton X o la de sus hermanos Alt-F4 o boton derecho raton sobre caption y cerrar, el resto de casos esta recogido sin modificar absolutamente nada.

Un saludo.
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Cierre de un DIALOG

Postby antolin » Thu Nov 14, 2013 12:43 pm

Tienes razón Antonio, no es necesario hacer crecer FiveWin con casos puntuales como el mío. Y es verdad hmpaquito, yo tambien suelo controlar la salida con diferentes botones, pero en este caso se trataba de un dialogo NOMODAL que cierro al pinchar fuera de él (no sin botones) y necesitaba saber si se había cerrado de forma normal o con el boton X, pues estaba barajando la opción de definirle un estilo sin WM_SYSMENU, pero decidí dejarlo y así utilizar el boton X como opcion CANCELAR y no guardar, y pinchar fuera como opción GUARDAR. De todos modos, ALT+F4 siempre funciona independientemente del estilo del dialogo y ese sí era un problema.
Peaaaaaso de foro...
antolin
 
Posts: 491
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 88 guests