BtnBmp entre los Gets, problema de Focu ???

BtnBmp entre los Gets, problema de Focu ???

Postby Ale SB » Fri May 30, 2008 4:09 pm

Siempre que y uso el BtnBmp entre los Gets, tengo problemas com el retorno del SetFocus ;
Code: Select all  Expand view  RUN
REDEFINE GET oGet[1]  VAR oDbfCadaClie:ArCodAll ID 21 OF oDlg PICTURE "999999" Update


Code: Select all  Expand view  RUN
REDEFINE BTNBMP oBtn[1] ID 701 RESOURCE "PESQ_CLI_24" OF oDlg NOBORDER Default   ;             
ACTION ( IF( Empty(oDbfCadaClie:ArCodAll), oGet[2]:SetFocus(), ;                                      ( AchaClie( StrZero( Val( oDbfCadaClie:ArCodAll ),6 ) ) );
                    ), ;             
                   Eval( cBCpf ), Eval( cBRg ), oDlg:UpDate() ) UpDate     


Code: Select all  Expand view  RUN
REDEFINE GET oGet[2]  VAR oDbfCadaClie:ArNomCli ID 22 OF oDlg PICTURE "@!"   UpDate          


Code: Select all  Expand view  RUN
********************************************************************************
STATIC FUNCTION AchaClie( cCodClie )
********************************************************************************
  oDbfCadaClie:GoTop()                     
  IF !oDbfCadaClie:Seek(cCodClie)
     ( IIF( MsgYesNo("Código não Encontrado" + CRLF + "Deseja Fazer uma Busca por Cliente", "Selecione uma Opção"), ;
          ( BrwPesqClie(),oGet[5]:SetFocus() ),; // Eval( cBCpf ), Eval( cBRg ), oGet[3]:SetFocus() ), ;
            ( oDbfCadaClie:Blank(), oGet[2]:SetFocus()  ))) //, oGet[2]:SetFocus() ) ) , oDlg:UpDate() )
  ELSE     
    oGet[5]:SetFocus() //--> *
    oBtn[1]:oJump := oGet[5]  //--> **
    //xSetFocus(oGet[5])
  ENDIF
  nVlrUnit := oDbfCadaClie:ArVlrCli
  nVlrTt:=nQtd * nVlrUnit
  oGet[23]:Refresh()

RETURN .T.


* No retorna ao Focu estabelecido, o focu vai direto para oGet[2]
** tengo q colocar el jump, para funcionar correctamente, si y usar solamente o Jump, tambien no funciona, preciso siempre usar los 2 juntos.

Isto solo acontece usando el tecla Enter, si y clickar com el Mouse, ai funciona perfectamente solamente com o SetFocus ou solamente com el Jump.

Outra forma que tambien funciona normal es usando el Function xsetFocus()

Code: Select all  Expand view  RUN
FUNCTION XSetFocus(oObj)
Local oTempo := ""
Define Timer oTempo Interval 10 Of oObj:oWnd Action (oObj:SetFocus(),oObj:SetPos(0),oTempo:Deactivate())
Activate Timer oTempo
Retu("")


Estas funcionam mui bem:
1-
oGet[5]:SetFocus()
oBtn[1]:oJump := oGet[5]

2-
oBtn[1]:oJump := oGet[5]
xSetFocus(oGet[5])

3-
oGet[5]:SetFocus()
xSetFocus(oGet[5])

Mi duda es, uno SetFocus no serio lo bastante para funcionar ?

Sendo que, com el Mouse, lo retorno eh normal con uno Setfocus() apenas.

E con <Enter> es preciso de usar lo SetFocus, combinado com el Jump ou la Funçao xSetFocus().

Saludos Ale
aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
User avatar
Ale SB
 
Posts: 248
Joined: Wed Jan 11, 2006 11:30 am
Location: Campo Grande-MS / Brasil

Postby Antonio Linares » Thu Jun 05, 2008 8:14 am

Ale,

> Mi duda es, uno SetFocus no serio lo bastante para funcionar ?

No, no es suficiente porque el proceso de perdida de foco es una secuencia que ha de completarse con una ganancia de foco.

Es decir, si estas en una secuencia de cambio de foco controlada por Windows, no puedes interrumpirla. Por eso la opción del timer funciona, porque Windows ha terminado ya y entonces SI puedes cambiar el foco.
regards, saludos

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

Postby Ale SB » Thu Jun 05, 2008 2:14 pm

Ahora Comprendo, Gracias.

Saluds, Ale
aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
User avatar
Ale SB
 
Posts: 248
Joined: Wed Jan 11, 2006 11:30 am
Location: Campo Grande-MS / Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 96 guests