Página 1 de 1

Problema com GET - DE NOVO

Enviado: 03 Set 2024 21:22
por JoséQuintas
Tem lá o get com valid, que é no LOSTFOCUS.

Código: Selecionar todos

      IF ! Empty( bValid )
         ON LOSTFOCUS Eval( bValid )
      ENDIF
Se está numa TABPAGE funciona, se está sem TABPAGE não funciona.

O que pesquisar numa hora dessas ?

Problema com GET - DE NOVO

Enviado: 03 Set 2024 21:51
por JoséQuintas
lostfocus1.png
lostfocus2.png
A coisa fica mais legal ainda quando a gente acha que achou o problema/solução....

Código: Selecionar todos

#include "frm_class.ch"

FUNCTION frm_Valid( Self, aItem )

   LOCAL nSelect, lFound := .T., xValue, nPos

   MsgExclamation( "Entrou no frm_Valid, verificando button" )
   // if btn cancel abort validate (current on hwgui only)
   nPos := hb_AScan( ::aControlList, { | e | e[ CFG_CTLTYPE ] == TYPE_BUTTON .AND. ;
      e[ CFG_CAPTION ] == "Cancel" } )
   IF nPos != 0
      IF GUI():IsCurrentFocus( ::xDlg, ::aControlList[ nPos, CFG_FCONTROL ] )
         RETURN .T.
      ENDIF
   ENDIF
   MsgExclamation( "Continuando" )

   xValue := GUI():ControlGetValue( ::xDlg, aItem[ CFG_FCONTROL ] )
   IF aItem[ CFG_ISKEY ]
      MsgExclamation( "Entrou no ISKEY" )
      IF aItem[ CFG_FTYPE ] == "C"
Então.....

Testo se o foco está no CANCEL, porque se o usuário clicou em CANCEL aborta.
Acontece que no LOSTFOCUS do código, o foco vai pro CANCEL mesmo sem clicar.

Então tá errado ?
Mas com TABPAGE funciona.....

Talvez o VALID.... abandonado por outro problema...

Alguma idéia ?

Nota: só tem os dois controles ativados, o GETBOX e o BUTTONEX.

Problema com GET - DE NOVO

Enviado: 03 Set 2024 22:06
por JoséQuintas
Já sei....

Mesma solução adotada num bug parecido de HWGUI e FIVEWIN: UM GET FANTASMA

Se tiver um get a mais, escondido, o foco vai pra ele e não pro button.

Até que as LIBs não são tão diferentes assim....

Código: Selecionar todos

   IF GUI():LibName() $ "FIVEWIN,HWGUI"
      /* dummy textbox to works last valid */
      AAdd( ::aControlList, EmptyFrmClassItem() )
      Atail( ::aControlList )[ CFG_CTLTYPE ] := TYPE_BUG_GET

      GUI():TextCreate( ::xDlg, ::xDlg, @Atail( ::aControlList )[ CFG_FCONTROL ], ;
         nRow, nCol, 0, 0, " ", "", 0, { || .T. },,,@Atail( ::aControlList )[ CFG_FCONTROL ], Self )

   ENDIF
Resta testar se vai dar certo adicionar aí pra HMGE.

Mas que é um saco é...
É corrigir o que estava funcionando... porque o que funciona não funciona...

Pois é....
Entra a criatividade do programador, não pra criar, mas pra resolver bugs que passaram a existir..... kkkk

Problema com GET - DE NOVO

Enviado: 04 Set 2024 08:23
por JoséQuintas
Deu certo, resolvido.
Liberei o get fantasma pra todas as LIBs.
É um get a mais só pra tapa-buraco, só pra sempre existir um próximo foco.
Isso resolve VALID em HWGUI e FIVEWIN, e resolve o CANCEL da MINIGUI, também relacionado com validação.