Página 1 de 1

Browse nao funciona no retorto de Dialog

Enviado: 19 Nov 2021 14:48
por nasouza
Numa Dialog tenho um browse com uma base de dados, atraves das setas do teclado consigo fazer a movimentacao de registro a registro, quando preciso chamar uma dialog atraves de botao buttonex para realizar uma inclusao,alteracao ou seja abro uma nova dialog, no momento que termino esta rotina e retorno para o browse , as setas do teclado nao funciona, e necessario que eu click com o mouse em qualquer registro, para que volte a funcionar as setas do teclado, existe uma forma de resolver esta anomalia. utilizo o xHarbour 1.2.3 simplex (build 20140807) com hwgui 2.17.

Browse nao funciona no retorto de Dialog

Enviado: 19 Nov 2021 15:14
por gilbertosilverio
Ola,

A grosso modo, basta você direcionar o foco para o browse, após o termino da função, creio que e isso...

Código: Selecionar todos


@ 860,460 BUTTONEX oButtonex20 CAPTION "Pes&quisar"    SIZE 100,32 STYLE WS_TABSTOP  ;
                ON CLICK {|| Monta_NFe(), oBROWSE2:SETFOCUS() }


Browse nao funciona no retorto de Dialog

Enviado: 19 Nov 2021 16:18
por nasouza
Gilberto, incrível, mas dando um setfocus na saída da dialog que foi chamada não funcionou e desta maneira me parece que sim, vou colocar as rotinas.

Browse nao funciona no retorto de Dialog

Enviado: 20 Nov 2021 08:23
por gilbertosilverio
Ola,

Não sou nenhum expert na HWGUI, mais tudo que preciso fazer coloco dentro desse CodeBlock, se e assim que se chama esses colchetes, geralmente mando o foco para onde quero e muito mais...

Coloca também um oBrowse:Refresh(), para reorganizar o browse...

Código: Selecionar todos

@ 860,460 BUTTONEX oButtonex20 CAPTION "Pes&quisar"    SIZE 100,32 STYLE WS_TABSTOP  ;
	                ON CLICK {|| Monta_NFe(), oBROWSE2:REFRESH(), oBROWSE2:SETFOCUS()  }

Browse nao funciona no retorto de Dialog

Enviado: 20 Nov 2021 09:47
por JoséQuintas
Talvez oBrowse2 não esteja visível, talvez tenha que ser no browse.
Uma opção, talvez, passar oBrowse2 por parâmetro.
E talvez pra não ficar um codeblock muito grande, fazer igual Visual Basic, mas precisa testar.

Ao invés de:

Código: Selecionar todos

@ 860,460 BUTTONEX oButtonex20 CAPTION "Pes&quisar"    SIZE 100,32 STYLE WS_TABSTOP  ;
                   ON CLICK {|| Monta_NFe(), oBROWSE2:REFRESH(), oBROWSE2:SETFOCUS()  }
Testar se isto funciona:

Código: Selecionar todos

@ 860,460 BUTTONEX oButtonex20 CAPTION "Pes&quisar"    SIZE 100,32 STYLE WS_TABSTOP  ;
                   ON CLICK {|| oButtonex20_OnClick( oBrowse2 ) }
...
FUNCTION oButtonex20_OnClick( oBrowse2 )

   Monta_NFe()
   oBrowse2:Refresh()
   oBrowse2:SetFocus()

   RETURN Nil
Quando tem muita coisa, isso deixa o fonte mais limpo.
Mas falta o teste prático.