Identificar/Determinar como se pierde focus..

Identificar/Determinar como se pierde focus..

Postby Raymundo Islas M. » Sun Sep 19, 2010 5:45 pm

Antonio/Daniel,

Tengo algunos GETs que tienen una validacion digamos :

- Si escribo algo, busco que exista en catalogo
- Si existe lo muestro
- Si no existe mando el mansaje y regreso al mismo get

- Si esta vacio, el focus brinca a otro control

Ahora, si quiero pasarme a otra pestaña, obviamente el get pierde el focus, pero de inmediato me valida y como esta vacio se brinca al otro control.
Eso significa que debo dar 2 click para poder pasarme a la pestaña.

Que debo hacer para decirle cuando pierde focus via teclado : enter, tab, etc o cuando es por mouse y asi sepa si deba validar o no.


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: Identificar/Determinar como se pierde focus..

Postby Ruben Fernandez » Sun Sep 19, 2010 7:01 pm

Raymundo: Si te entrendí, en el Valid deberías de establecer esas condiciones.
Quizas con bChange del get tengas alguna oportunidad, es lo que se me ocurre.
Gracias y Saludos
Ruben Fernandez - Uruguay
FWH 11.06, Harbour, Borland 5.82
Ruben Fernandez
 
Posts: 366
Joined: Wed Aug 30, 2006 5:25 pm
Location: Uruguay

Re: Identificar/Determinar como se pierde focus..

Postby Carles » Sun Sep 19, 2010 7:19 pm

Raymundo,

En tu funcion de validacion

Code: Select all  Expand view
FUNCTION MiValid()

   IF oPestaña:lFocused
       RETU .T.
   ENDIF

   ...

RETU lOk

 
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1114
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: Identificar/Determinar como se pierde focus..

Postby triumvirato » Tue Sep 21, 2010 2:43 pm

Raymundo,

Prueba a poner la cláusula CANCEL en la definición del FOLDER, precisamente se utiliza para eso. Te dejo un pequeño ejemplo en el que el get tiene un VALID y el folder está definido con la cláusula CANCEL. El problema mayor reside en que el usuario se puede mover por todas las pestañas del folder sin tener en cuenta los VALID. Deberás controlar este aspecto, aunque no creo que te de problemas.

Code: Select all  Expand view

#include "fivewin.ch"

function Main()

   local oDlg, oFld, cName1 := "       "

   DEFINE DIALOG oDlg TITLE "FiveWin Dynamic folders" ;
      FROM 5, 5 TO 20, 49

   @ 0.5, 1 FOLDER oFld PROMPT "&xBase", "&And OOP", "&Power" ;
      OF oDlg SIZE 160, 90 CANCEL
     
   @ 1, 1 BUTTON "&Hello" OF oFld:aDialogs[ 1 ] ;
     ACTION MsgInfo( "Hello world!" )
     
   @ 4,1 GET cName1  OF oFld:aDialogs[ 1 ] COLORS "B/BG" VALID !Empty( cName1 )

   @ 5.5, 11 BUTTON "Ok" OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED

return nil

 
triumvirato
 
Posts: 199
Joined: Tue Apr 22, 2008 9:54 am
Location: Valladolid, Spain.

Re: Identificar/Determinar como se pierde focus..

Postby Raymundo Islas M. » Tue Sep 21, 2010 3:46 pm

Ruben,
Sip, al parecer en la funcion del valid ahi esta el embrollo del asunto, ya estoy analizando linea por linea para ver donde puedo corregir.

Carles,
Lo que indicas funciona parecido a una condicion que tenia, donde si no hay nada por procesar regresa el .t.

Triumvirato,
Efectivamente, puede funcionar, salvo ver que validaciones puede afectar para re-validarlas antes de algun proceso importante : grabar, procesar, etc.

Entre sus sugerencias y lo que tengo saldria la solucion, ahora, si hubiese la manera de saber algo como: oGet:nLastKeyPressed todo estaria resuelto.


Saludos y Gracias
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: Identificar/Determinar como se pierde focus..

Postby triumvirato » Tue Sep 21, 2010 4:35 pm

Raymundo,

Se me ocurre así de pronto algo como:

Code: Select all  Expand view

oGet:bGotfocus := { || oFld:lCancel := .t. }
oGet:bLostFocus := { || oFld:lCancel := .f.}
 


Esto con el get donde te sucede el problema.

Saludos!
triumvirato
 
Posts: 199
Joined: Tue Apr 22, 2008 9:54 am
Location: Valladolid, Spain.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: cmsoft, JoseAlvarez and 75 guests