Alaska Software Inc. - AlertBox() y Padre-hijo
Username: Password:
AuthorTopic: AlertBox() y Padre-hijo
Jorge LAlertBox() y Padre-hijo
on Fri, 24 Jun 2011 18:27:26 -0300
Hola a todos,

tengo un problemita con el AlertBox() y mi aplicación

estoy trabajando con XbpCrt() y el objeto lo tengo en la variable oPadre

tengo : AlertBox( oPadre, 'opciones', { ' opción', 'opción' } )


si aprieto la opción 1 o 2, mi aplicación sigue siendo la activa en windows,
pero si aprieto <Esc>  el foco de la aplicación se va a cualquier lado

no me doy cuenta la forma de solucionarlo, podrían darme una ayuda con este 
problema ?

saludos  todos
Gustavo M. BurgosRe: AlertBox() y Padre-hijo
on Fri, 24 Jun 2011 19:00:02 -0300
la verdad que no uso es funcion, uso la confirmbox, que hace mas o menos lo 
mismo y un poco mas estilizada.
saludos

Gustavo M. Burgos
Rivadavia N 278.
Pcia Roque Saenz Pea - Chaco
Argentina
Fijo 03732-420635
Movil 3732-408559
Burmanspm@arnet.com.ar
Jorge LRe: AlertBox() y Padre-hijo
on Sat, 25 Jun 2011 12:28:11 -0300
Hola Gustavo

coincido en el confirmbox es más estilizada, pero creo que hay opciones en 
el alertbox() que el confirmbox no cubre

luego de analizar el comportamiento del foco al entrar y al salir del 
alertbox(), entiendo que la manera de traspasar el foco es errónea

la rutina crea el diálogo y asigna el foco al diálogo
   SetAppFocus( oDlg )

luego al primer botón

   oFocus := SetAppFocus( aPushBtn[1] )
.......
y termina
   SetAppFocus( oFocus )
cuando en vez de pasar oFocus debería pasar oOwner
o oFocus ser asignado en SetAppAppFocus( oDlg )

en fin....
haciendo el pequeño cambio
SetAppFocus( oOwner )
al final, quedó solucionado




"Gustavo M. Burgos"  escribió en el mensaje de 
noticias:6126da15$34df767f$2a49c@news.alaska-software.com...

la verdad que no uso es funcion, uso la confirmbox, que hace mas o menos lo
mismo y un poco mas estilizada.
saludos

Gustavo M. Burgos
Rivadavia N° 278.
Pcia Roque Saenz Peña - Chaco
Argentina
Fijo 03732-420635
Movil 3732-408559
Burmanspm@arnet.com.ar
Jos Luis Otermin [Alaska Software]Re: AlertBox() y Padre-hijo
on Sat, 25 Jun 2011 13:39:31 -0300
Jorge,

Probaste con AlertBox que est en los ejemplos de Xbase++?

<drive>:\ALASKA\XPPW32\SOURCE\samples\solution\alertbox

Espero haber sido de ayuda.

Saludos

Jose Luis Otermin
Alaska Software


"Jorge L" <jlborlando@way.com.ar> escribi en el mensaje 
news:7918f492$12e25d3e$2a5cc@news.alaska-software.com...
> Hola a todos,
>
> tengo un problemita con el AlertBox() y mi aplicacin
>
> estoy trabajando con XbpCrt() y el objeto lo tengo en la variable oPadre
>
> tengo : AlertBox( oPadre, 'opciones', { ' opcin', 'opcin' } )
>
>
> si aprieto la opcin 1 o 2, mi aplicacin sigue siendo la activa en 
> windows,
> pero si aprieto <Esc>  el foco de la aplicacin se va a cualquier lado
>
> no me doy cuenta la forma de solucionarlo, podran darme una ayuda con 
> este problema ?
>
> saludos  todos
>
>
>
Jorge LRe: AlertBox() y Padre-hijo
on Sat, 25 Jun 2011 14:18:10 -0300
Hola José

justamente de ese ejemplo estoy hablando

has visto mi comentario sobre la pérdida del foco ?, puede ser que esté 
equivocado ?

un saludo grande


"José Luis Otermin [Alaska Software]"  escribió en el mensaje de 
noticias:602ea631$5443e092$32ad1@news.alaska-software.com...

Jorge,

¿Probaste con AlertBox que está en los ejemplos de Xbase++?

<drive>:\ALASKA\XPPW32\SOURCE\samples\solution\alertbox

Espero haber sido de ayuda.

Saludos

Jose Luis Otermin
Alaska Software


"Jorge L" <jlborlando@way.com.ar> escribió en el mensaje
news:7918f492$12e25d3e$2a5cc@news.alaska-software.com...
> Hola a todos,
>
> tengo un problemita con el AlertBox() y mi aplicación
>
> estoy trabajando con XbpCrt() y el objeto lo tengo en la variable oPadre
>
> tengo : AlertBox( oPadre, 'opciones', { ' opción', 'opción' } )
>
>
> si aprieto la opción 1 o 2, mi aplicación sigue siendo la activa en 
> windows,
> pero si aprieto <Esc>  el foco de la aplicación se va a cualquier lado
>
> no me doy cuenta la forma de solucionarlo, podrían darme una ayuda con 
> este problema ?
>
> saludos  todos
>
>
>
Jos Luis Otermin [Alaska Software]Re: AlertBox() y Padre-hijo
on Sat, 25 Jun 2011 18:02:19 -0300
Jorgito,

Habiendo visto el cdigo fuente, me queda comentar que podras usar:

#include "xbp.ch"

nStatus := XBP_DISP_APPMODAL

IF .NOT. oDlg:setModalState( nStatus )
    MsgBox( "No se pudo establecer dialogo modal", "Sonamos")
ENDIF

nStatus := XBP_DISP_MODELESS
oDlg:setModalState( nStatus )  Devolvemos modo NORMAL.


Espero haber sido de ayuda.

Saludos

Jose Luis Otermin
Alaska Software



"Jorge L" <jlborlando@way.com.ar> escribi en el mensaje 
news:58ff8c04$7437eb16$32d53@news.alaska-software.com...
> Hola Jos
>
> justamente de ese ejemplo estoy hablando
>
> has visto mi comentario sobre la prdida del foco ?, puede ser que est 
> equivocado ?
>
> un saludo grande
>
>
> "Jos Luis Otermin [Alaska Software]"  escribi en el mensaje de 
> noticias:602ea631$5443e092$32ad1@news.alaska-software.com...
>
> Jorge,
>
> Probaste con AlertBox que est en los ejemplos de Xbase++?
>
> <drive>:\ALASKA\XPPW32\SOURCE\samples\solution\alertbox
>
> -- 
> Espero haber sido de ayuda.
>
> Saludos
>
> Jose Luis Otermin
> Alaska Software
>
>
> "Jorge L" <jlborlando@way.com.ar> escribi en el mensaje
> news:7918f492$12e25d3e$2a5cc@news.alaska-software.com...
>> Hola a todos,
>>
>> tengo un problemita con el AlertBox() y mi aplicacin
>>
>> estoy trabajando con XbpCrt() y el objeto lo tengo en la variable oPadre
>>
>> tengo : AlertBox( oPadre, 'opciones', { ' opcin', 'opcin' } )
>>
>>
>> si aprieto la opcin 1 o 2, mi aplicacin sigue siendo la activa en 
>> windows,
>> pero si aprieto <Esc>  el foco de la aplicacin se va a cualquier lado
>>
>> no me doy cuenta la forma de solucionarlo, podran darme una ayuda con 
>> este problema ?
>>
>> saludos  todos
>>
>>
>>
>
Jos Luis Otermin [Alaska Software]Re: AlertBox() y Padre-hijo
on Sat, 25 Jun 2011 18:43:04 -0300
Jorge,

Me puse a mirar el ejemplo una vez ms y, releyendo tu mensaje con mayor 
detenimiento, observ que poda pasarse el foco "a mano" en:

STATIC PROCEDURE KeyHandler( nKey, oButton, aPushButtons )

   DO CASE
   CASE nKey == xbeK_ESC

       establece foco en el padre del padre del botn
       (o sea... el dilogo previo al AlertBox )

      SetAppFocus( oButton:setParent():setParent() )

      PostAppEvent( xbeP_Close,,, oButton:setParent():setParent() )
   CASE nKey == xbeK_RETURN
      PostAppEvent( xbeP_Activate,,, oButton )
   ENDCASE

RETURN

Te parece?
En mi escritorio funciona de maravillas 

Espero haber sido de ayuda.

Saludos

Jose Luis Otermin
Alaska Software
Jorge LRe: AlertBox() y Padre-hijo
on Sun, 26 Jun 2011 08:58:15 -0300
José

analizando el ejemplo original, veo que de alguna manera cuando hice el 
recorte del prg para sacarle el Main(), he trasladado la sentencia 
SetAppFocus( oDlg ) a la creación del xbpDialog del mismo alertbox,  que al 
no guardar el foco ahí,  de hecho genera el error que he descripto


gracias por tu aporte que me ayudo para revisar y comprar

"José Luis Otermin [Alaska Software]"  escribió en el mensaje de 
noticias:4e0c1fa1$4c1fc674$37ea1@news.alaska-software.com...

Jorge,

Me puse a mirar el ejemplo una vez más y, releyendo tu mensaje con mayor
detenimiento, observé que podía pasarse el foco "a mano" en:

STATIC PROCEDURE KeyHandler( nKey, oButton, aPushButtons )

   DO CASE
   CASE nKey == xbeK_ESC

       establece foco en el padre del padre del botón
       (o sea... el diálogo previo al AlertBox )

      SetAppFocus( oButton:setParent():setParent() )

      PostAppEvent( xbeP_Close,,, oButton:setParent():setParent() )
   CASE nKey == xbeK_RETURN
      PostAppEvent( xbeP_Activate,,, oButton )
   ENDCASE

RETURN

¿Te parece?
En mi escritorio funciona de maravillas 

Espero haber sido de ayuda.

Saludos

Jose Luis Otermin
Alaska Software