foco no browse, dialog com button e browse
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
foco no browse, dialog com button e browse
Não consigo resolver isso, pra abrir a dialog com foco no browse.
Pesquisando no fórum, encontrei mensagem minha kkkk
Mas aí seria hwgui 2.17, e não tem isso na atual.
Talvez quem tem hwgui 2.17 possa verificar como esse nInitFocus é usado depois.
Pesquisando no fórum, encontrei mensagem minha kkkk
Mas aí seria hwgui 2.17, e não tem isso na atual.
Talvez quem tem hwgui 2.17 possa verificar como esse nInitFocus é usado depois.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
foco no browse, dialog com button e browse
Melhorou, mas ainda não resolveu total.
O foco não está mais no button.
Mas pode teclar ENTER à vontade que não aciona o ENTER do browse.
Precisa mexer com setas primeiro.
Já tentei :nRowPos, :nCurrent, e nada.
Código: Selecionar todos
xDlg:xControl:SetFocus()
Mas pode teclar ENTER à vontade que não aciona o ENTER do browse.
Precisa mexer com setas primeiro.
Já tentei :nRowPos, :nCurrent, e nada.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
foco no browse, dialog com button e browse
Faltou um complemento:
O primeiro não funciona, tem que ser o segundo
Código: Selecionar todos
xControl:SetFocus()
xDlg:xControl:SetFocus()
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/
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/
foco no browse, dialog com button e browse
Não mexo com Hwgui a tempos, mas se colocasse no buffer do teclado a tecla HOME ou mesmo uma seta para ESQUERDA já tentou assim?JoséQuintas escreveu:Precisa mexer com setas primeiro.
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
foco no browse, dialog com button e browse
Exemplo abaixo como uso. Onde oBrowse é meu objeto do BROWSE.
Código: Selecionar todos
INIT DIALOG oDlg TITLE "Acerto de conta corrente" AT 352,140 SIZE 950,513 ;
FONT HFont():Add( '',0,-13,400,,,) CLIPPER NOEXIT;
STYLE DS_CENTER + WS_VISIBLE + WS_CAPTION + WS_SYSMENU
ON INIT{||(oDlg:nInitFocus := oBrowse:handle),.T. }
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
foco no browse, dialog com button e browse
Esse nInitFocus só tem na hwgui 2.17
Justamente olhando o fonte da hwgui 2.17 foi onde vi o dlg:control:SetFocus()
Na 2,23....
Na Dialog tem o button e o browse, e nada mais.
Finalmente, desse jeito, SetFocus() tira o foco do button.
Supõe-se que tenha ficado no browse, mas não se sabe.
Justamente olhando o fonte da hwgui 2.17 foi onde vi o dlg:control:SetFocus()
Na 2,23....
Na Dialog tem o button e o browse, e nada mais.
Finalmente, desse jeito, SetFocus() tira o foco do button.
Supõe-se que tenha ficado no browse, mas não se sabe.
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/
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/
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
foco no browse, dialog com button e browse
Olá!
HwGUI Documentation escreveu:5.5. Controls handling functions.
hwg_SetFocus( handle )
Sets the keyboard focus to the specified GUI element (window or control).
handle - handle of a GUI element;
Return value - handle to the GUI element that previously had the keyboard focus.
hwg_GetFocus()
Retrieves the handle to the GUI element (window or control) that has the keyboard focus.
Return value - handle to the GUI element that has the keyboard focus.
Código: Selecionar todos
hwg_SetFocus(xDlg:xControl:handle)[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
foco no browse, dialog com button e browse
Se alguém usa, já tem solução, é um jeito de saber se alguém usa.ANDRIL escreveu:Não mexo com Hwgui a tempos, mas se colocasse no buffer do teclado a tecla HOME ou mesmo uma seta para ESQUERDA já tentou assim?
O problema é que parece que ninguém usa a versão atual, a 2.17 pode ser considerada outra hwgui.
--------
Na prática, resta saber se teclar setas tem a ver com o foco ou não.
Já fiz vários testes, incluindo esse hwg_SetFocus()
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/
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/
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
foco no browse, dialog com button e browse
Ola!
Analisando o fonte HBrowse.Prg, no event handler do objeto browse (método onEvent()), verifiquei que quando a mensagem é set focus, só executa a ação se houver conteúdo na variável de instância bGetFocus (diferente de NIL). Sugiro testar colocando um codeblock nesta variável, na criação do browse. Por exemplo:
Depois disto, no momento apropriado, executar o refresh().
Estou sem máquina estes dias, acho que o HD bateu asas. Se não fosse isto, eu mesmo testaria.
Analisando o fonte HBrowse.Prg, no event handler do objeto browse (método onEvent()), verifiquei que quando a mensagem é set focus, só executa a ação se houver conteúdo na variável de instância bGetFocus (diferente de NIL). Sugiro testar colocando um codeblock nesta variável, na criação do browse. Por exemplo:
Código: Selecionar todos
oBr:bGetFocus := { |o| o:refreshLine() }Estou sem máquina estes dias, acho que o HD bateu asas. Se não fosse isto, eu mesmo testaria.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
foco no browse, dialog com button e browse
Apelei pra tudoalxsts escreveu:Analisando o fonte HBrowse.Prg, no event handler do objeto browse (método onEvent()), verifiquei que quando a mensagem é set focus, só executa a ação se houver conteúdo na variável de instância bGetFocus (diferente de NIL). Sugiro testar colocando um codeblock nesta variável, na criação do browse. Por exemplo:
Código: Selecionar todos
xControl:bGetFocus := { | o | o:Refresh(), hwg_SetFocus( o:Handle ), o:Refresh() }
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/
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/
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
foco no browse, dialog com button e browse
Olá!
Minha sugestão é alimentar o bGetFocus na criação do browse. No ON INIT da Dialog colocar oDlg:oBrw:setFocus() ou outro modo usando o handle com hwg_SetFocus()...
Minha sugestão é alimentar o bGetFocus na criação do browse. No ON INIT da Dialog colocar oDlg:oBrw:setFocus() ou outro modo usando o handle com hwg_SetFocus()...
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
foco no browse, dialog com button e browse
Já fiz esse tipo de teste, até SendMessage() eu já usei.
Como eu disse antes, PODE SER que o foco foi resolvido.
A única certeza é que ao abrir dialog:
- o foco não está mais no button
- ENTER no browse não faz nada de início
- Digitando seta, ou pra cima, ou pra baixo, ou pra direita, ou pra esquerda, o ENTER passa a funcionar, não só o ENTER, mas as próprias setas.
Aquele nInitFocus que existe na hwgui 2.17, tem em vários lugares nos fontes, em vários controles. não sei se vai ter uma solução simples pro browse na versão atual.
Código: Selecionar todos
xControl:bGetFocus := { | o | o:Refresh(), hwg_SetFocus( o:Handle ), o:Refresh() }
Código: Selecionar todos
// setfocus on browse do not solve ENTER question
gui_DialogActivate( oThisForm:xDlg, { || gui_SetFocus( oThisForm:xDlg, @aItem[ CFG_FCONTROL ] ) } )
Código: Selecionar todos
FUNCTION gui_SetFocus( xDlg, xControl )
(xDlg); (xControl)
xDlg:xControl:SetFocus()
RETURN Nil
A única certeza é que ao abrir dialog:
- o foco não está mais no button
- ENTER no browse não faz nada de início
- Digitando seta, ou pra cima, ou pra baixo, ou pra direita, ou pra esquerda, o ENTER passa a funcionar, não só o ENTER, mas as próprias setas.
Aquele nInitFocus que existe na hwgui 2.17, tem em vários lugares nos fontes, em vários controles. não sei se vai ter uma solução simples pro browse na versão atual.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
foco no browse, dialog com button e browse
kkkkkkkkkkkk
Se eu testar o foco atual, ele está no browse, e tudo funciona.
Mas.... se retirar a mensagem hwg_MsgInfo(), não funciona.
Código: Selecionar todos
#ifdef HBMK_HAS_HWGUI
xControl := aItem[ CFG_FCONTROL ]
// trying to solve bug
bCode := { |a,b,c| (A),(B),(C),oThisForm:xDlg:xControl:SetFocus(), ;
hwg_SetFocus( xControl:handle ), ;
hwg_SendMessage( oThisForm:xDlg:xControl:Handle, WM_SETFOCUS, 0, 0 ), ;
; // x := hwg_SelfFocus( xControl:Handle ) , ;
; //hwg_MsgInfo( iif( x, "YES", "NO" ) ), ;
hwg_SendMessage( oThisForm:xDlg:Handle, WM_KEYDOWN, VK_RIGHT, 0 ), ;
hwg_SendMessage( oThisForm:xDlg:Handle, WM_KEYDOWN, VK_LEFT, 0 ) }
// wParam := hwg_PtrToUlong( wParam )
gui_DialogActivate( oThisForm:xDlg, bCode )
// { || gui_SetFocus( oThisForm:xDlg, @aItem[ CFG_FCONTROL ] ) } )
#else
gui_DialogActivate( oThisForm:xDlg )
#endif
( bCode )
RETURN Nil
Mas.... se retirar a mensagem hwg_MsgInfo(), não funciona.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
foco no browse, dialog com button e browse
Mais simples, sem nada, só mensagem.
Assim também funciona.
Conclusão: não é falta foco, pelo menos o foco normal, e nada que se faça vai mudar isso.
Código: Selecionar todos
#ifdef HBMK_HAS_HWGUI
bCode := { || hwg_MsgInfo( "ola" ) }
gui_DialogActivate( oThisForm:xDlg, bCode )
#else
gui_DialogActivate( oThisForm:xDlg )
#endif
( bCode )
Conclusão: não é falta foco, pelo menos o foco normal, e nada que se faça vai mudar isso.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
foco no browse, dialog com button e browse
Outro teste:
Somente com o foco pra dialog, o foco muda para o button.
Com os dois, o foco vai para o browse.
Mas mesma coisa: precisa teclar seta primeiro
Fiz só mais um teste depois, pra confirmar:
xDlg:xControl:SetFocus() seta o foco, é parte do que seria solução
browse:bGetFocus() não faz diferença
Algo mais precisa ser feito, mas só mexendo nos fontes da lib hwgui.
Código: Selecionar todos
bCode := { || hwg_SetFocus( oThisForm:xDlg:Handle ), oThisForm:xDlg:xControl:SetFocus() }
Com os dois, o foco vai para o browse.
Mas mesma coisa: precisa teclar seta primeiro
Fiz só mais um teste depois, pra confirmar:
xDlg:xControl:SetFocus() seta o foco, é parte do que seria solução
browse:bGetFocus() não faz diferença
Algo mais precisa ser feito, mas só mexendo nos fontes da lib hwgui.
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/
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/
