BO em browse

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BO em browse

Mensagem por JoséQuintas »

Problema estranho no browse.
ENTER logo que entra não funciona, só funciona se primeiro movimentar cursor.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BO em browse

Mensagem por JoséQuintas »

Aqui fica em observação, porque o problema de atualização pode ser do hedit, e não do browse.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

BO em browse

Mensagem por Fernando queiroz »

quintas eu ja tinha relatado isso antes, a primeira tecla nunca funciona , mas da segunda em diante funciona normalmente

tenta setando o focus para o browse oDlg:oPage1:oBrowse1:SetFocus()
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BO em browse

Mensagem por JoséQuintas »

Fernando queiroz escreveu:quintas eu ja tinha relatado isso antes, a primeira tecla nunca funciona , mas da segunda em diante funciona normalmente
É pior que isso.
A tecla funciona, o resultado é que não funciona.
Mas em observação, porque o BO do EDIT acaba confundindo o resultado.

Fiz um browse simples.
O resultado do browse é atualizar o edit.
Como o edit está enfrentando problemas, por enquanto não dá pra saber mais do browse kkkkk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BO em browse

Mensagem por JoséQuintas »

Meu browse é simples mesmo:
Passo o nome do campo e uma variável de valor para o browse
Se ela retornar com valor, atualizo o textbox

Código: Selecionar todos

   DialogBrowse( oTBrowse, cTable, cField, @xValue )

   IF ! Empty( xValue ) .AND. ! Empty( xControl )
      gui_SetTextValue( xDlg, xControl, xValue )
   ENDIF
No ENTER do browse atualiza essa varável

Código: Selecionar todos

STATIC FUNCTION fKeyDown( xControl, msg, wParam, lParam, cField, xValue )

   LOCAL nKEY

   IF msg == WM_KEYDOWN
      nKey := hwg_PtrToUlong( wParam ) //wParam
      IF nKey = VK_RETURN
         IF ! Empty( cField )
            xValue := FieldGet( FieldNum( cField, xValue ) )
         ENDIF
         hwg_EndDialog()
      ENDIF
   ENDIF
   (xControl)
   (lParam)

   RETURN .T.
Da vez anterior, ENTER logo de cara no browse saía do browse, mas o campo não era atualizado.
Só atualizava o campo se usasse setas primeiro, antes do ENTER.
Mas se ENTER saía do browse, então a tecla não estava se perdendo, e nada fez sentido.
Mas com o problema do EDIT, agora nada atualiza, não tenho mais referência sobre isso, por enquanto.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BO em browse

Mensagem por JoséQuintas »

Ferrou.

Código: Selecionar todos

STATIC FUNCTION fKeyDown( xControl, msg, wParam, lParam, cField, xValue )

   LOCAL nKEY

   IF msg == WM_KEYDOWN
      nKey := hwg_PtrToUlong( wParam ) //wParam
      IF nKey = VK_RETURN
         hwg_MsgInfo( "RETURN" )
         IF ! Empty( cField )
            xValue := FieldGet( FieldNum( cField, xValue ) )
         ENDIF
         hwg_EndDialog()
      ENDIF
   ENDIF
   (xControl)
   (lParam)

   RETURN .T.
Sim, a primeira tecla não faz efeito, parece ser o ponto de partida do browse funcionar.

Tá lá no fonte, ENTER mostra mensagem e sai do browse.
ENTER logo que abre o browse sai do browse sem mostrar mensagem.

Faz sentido isso ?
Então como explicar sair do browse com ENTER ?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

BO em browse

Mensagem por Itamar M. Lins Jr. »

Olá!
Não achei essa função no hbrowse.prg

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BO em browse

Mensagem por JoséQuintas »

Chamando aqui:

Código: Selecionar todos

   xControl:bOther := { |xControl, msg, wParam, lParam| fKeyDown( xControl, msg, wParam, lParam, cField, @xValue ) }
Volte na anterior que editei um pouco sobre o comportamento.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

BO em browse

Mensagem por Itamar M. Lins Jr. »

Olá!

Código: Selecionar todos

@ 005,230 Browse oBrwEL DataBase of oDlg Size 1220,240 Style WS_VSCROLL + WS_HSCROLL ;
    On UPDATE {|oBrwEL, nColPos| BrwELUpdate(oBrwEL, nColPos, oDlg, cCodCliente, cCliente) } ;
    APPEND AUTOEDIT ON RIGHTCLICK {|This,nLine,nCol| MarcarObra(This,nLine,nCol,oBrwEL) } 
Veja se tem AUTOEDIT e APPEND.
Eu uso BrowseEx da pasta\contrib

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BO em browse

Mensagem por JoséQuintas »

Talvez sirva de pista:

Código: Selecionar todos

STATIC FUNCTION fKeyDown( xControl, msg, wParam, lParam, cField, xValue )

   LOCAL nKEY

   hwg_MsgInfo( "rotina fkeydown" )
   IF msg == WM_KEYDOWN
      nKey := hwg_PtrToUlong( wParam ) //wParam
keydown.png
Está executando antes mesmo de abrir o browse, executa 4 vezes antes de abrir o browse.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BO em browse

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Veja se tem AUTOEDIT e APPEND.
Eu uso BrowseEx da pasta\contrib
Não. é browse de principiante bem pelado.

Código: Selecionar todos

FUNCTION gui_Browse( xDlg, xControl, nRow, nCol, nWidth, nHeight, oTbrowse, cField, xValue )

   LOCAL aItem

   @ nCol, nRow BROWSE xControl DATABASE SIZE nWidth, nHeight STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL

   xControl:bOther := { |xControl, msg, wParam, lParam| fKeyDown( xControl, msg, wParam, lParam, cField, @xValue ) }

   FOR EACH aItem IN oTBrowse
      ADD COLUMN aItem[2] TO xControl HEADER aItem[1] LENGTH Len( Eval( aItem[2] ) ) JUSTIFY LINE DT_LEFT
   NEXT
   (xDlg)

   RETURN Nil

STATIC FUNCTION fKeyDown( xControl, msg, wParam, lParam, cField, xValue )

   LOCAL nKEY

   hwg_MsgInfo( "rotina fkeydown" )
   IF msg == WM_KEYDOWN
      nKey := hwg_PtrToUlong( wParam ) //wParam
      IF nKey = VK_RETURN
         hwg_MsgInfo( "RETURN" )
         IF ! Empty( cField )
            xValue := FieldGet( FieldNum( cField, xValue ) )
         ENDIF
         hwg_EndDialog()
      ENDIF
   ENDIF
   (xControl)
   (lParam)

   RETURN .T.
Mas olhando bem, vou alterar a ordem disso, colocar o bother depois das colunas.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BO em browse

Mensagem por JoséQuintas »

Novo teste.
Bloqueei totalmente a função de sair com ENTER.

Se der ENTER logo que entra no browse, ele sai.

Se movimentar com setas e der ENTER, não sai mais, que é o esperado.

Difícil, mas talvez tenha a ver com aquele ENTER que movimenta entre campos, difícil mas não impossível.
Isso significaria o foco fora do browse, justamente o que o Fernando citou.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BO em browse

Mensagem por JoséQuintas »

Nenhuma novidade.

Apenas vi que internamente o ENTER é usado pra acionar o EDIT do browse.
Por enquanto só pistas isoladas.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BO em browse

Mensagem por JoséQuintas »

Por enquanto no meu caso não é bug.
Como só tem um button, não deu pra perceber que o foco estava nele.

Mesmo assim, não consegui setar o foco para o browse.
Tentei no ON INIT, no ON GETFOCUS da Dialog, e no ACTIVATE de quando ativa dialog.
Em todas dá erro de método não existente.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder