FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Identificar/Determinar como se pierde focus..
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Identificar/Determinar como se pierde focus..
Posted: Sun Sep 19, 2010 05: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
Posts: 366
Joined: Wed Aug 30, 2006 05:25 PM
Re: Identificar/Determinar como se pierde focus..
Posted: Sun Sep 19, 2010 07: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
Posts: 1283
Joined: Fri Feb 10, 2006 02:34 PM
Re: Identificar/Determinar como se pierde focus..
Posted: Sun Sep 19, 2010 07:19 PM
Raymundo,

En tu funcion de validacion

Code (fw): Select all Collapse
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
HIX -> https://github.com/carles9000/hix
Posts: 199
Joined: Tue Apr 22, 2008 09:54 AM
Re: Identificar/Determinar como se pierde focus..
Posted: Tue Sep 21, 2010 02: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 (fw): Select all Collapse
#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
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Re: Identificar/Determinar como se pierde focus..
Posted: Tue Sep 21, 2010 03: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
Posts: 199
Joined: Tue Apr 22, 2008 09:54 AM
Re: Identificar/Determinar como se pierde focus..
Posted: Tue Sep 21, 2010 04:35 PM
Raymundo,

Se me ocurre así de pronto algo como:

Code (fw): Select all Collapse
oGet:bGotfocus := { || oFld:lCancel := .t. }
oGet:bLostFocus := { || oFld:lCancel := .f.}


Esto con el get donde te sucede el problema.

Saludos!

Continue the discussion