Identificar/Determinar como se pierde focus..

Post Reply
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Identificar/Determinar como se pierde focus..

Post by Raymundo Islas M. »

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
Ruben Fernandez
Posts: 366
Joined: Wed Aug 30, 2006 5:25 pm
Location: Uruguay

Re: Identificar/Determinar como se pierde focus..

Post by Ruben Fernandez »

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
User avatar
Carles
Posts: 937
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Contact:

Re: Identificar/Determinar como se pierde focus..

Post by Carles »

Raymundo,

En tu funcion de validacion

Code: Select all

FUNCTION MiValid()

   IF oPestaña:lFocused
       RETU .T.
   ENDIF

   ...

RETU lOk

 
Salutacions, saludos, regards

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

https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
triumvirato
Posts: 199
Joined: Tue Apr 22, 2008 9:54 am
Location: Valladolid, Spain.

Re: Identificar/Determinar como se pierde focus..

Post by triumvirato »

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

#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

 
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: Identificar/Determinar como se pierde focus..

Post by Raymundo Islas M. »

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
triumvirato
Posts: 199
Joined: Tue Apr 22, 2008 9:54 am
Location: Valladolid, Spain.

Re: Identificar/Determinar como se pierde focus..

Post by triumvirato »

Raymundo,

Se me ocurre así de pronto algo como:

Code: Select all

oGet:bGotfocus := { || oFld:lCancel := .t. }
oGet:bLostFocus := { || oFld:lCancel := .f.}
 
Esto con el get donde te sucede el problema.

Saludos!
Post Reply