Página 1 de 1

Problema com browse/tela

Enviado: 29 Mar 2024 13:55
por JoséQuintas
É um problema parecido com o do browse da hwgui, mas ao contrário....
Talvez até seja uma pista pro problema da hwgui, mas não sei dizer.

Tenho lá meu browse genérico:

Código: Selecionar todos

      BrowseADO( @cnSQL, oTBrowse, "IENOME,CDNOME,FORPAGNOME,REAJUSTE" )
Funciona normalmente, em todas as chamadas.

É o que eu pensava até este momento.

Código: Selecionar todos

PROCEDURE Se la
...
...
BrowseADO()
Desse jeito acima funciona, no meio de qualquer fonte

Código: Selecionar todos

PROCEDURE SeiLa
...
BrowseADO()
Desse jeito acima, sendo a única coisa do fonte, os buttons não funcionam.
O teclado funciona normalmente.

Detalhe do browse: usa janela MODAL, criada através de wvgCrt()
Uso rotina genérica

Código: Selecionar todos

FUNCTION CrtModal( nTop, nLeft, nBottom, nRight, cTitle, nType )

   LOCAL oCrt

   hb_Default( @nType, 1 )
   WITH OBJECT oCrt := wvgCrt():New()
      :lModal     := .T.
      :Resizable  := .F.
      :Closable   := .F. // já consta no AppInitSets()
      //:FontName   := hb_gtInfo( HB_GTI_FONTNAME ) // anotação para o não modal
      //:FontHeight := hb_gtInfo( HB_GTI_FONTSIZE )
      //:FontWidth  := hb_gtInfo( HB_GTI_FONTWIDTH )
      :Create( , , { nTop, nLeft }, { nBottom, nRight } )
   ENDWITH
   AppInitSets(2)
   hb_gtInfo( HB_GTI_WINTITLE, cTitle )
   IF nType == 1
      SetColor( SetColorBox() )
      CLS
   ELSE
      SetColor( SetColorNormal() )
      CLS
      SetColor( SetColorMensagem() )
      Scroll( MaxRow() - 1, 0, MaxRow(), MaxCol(), 0 )
      SetColor( SetColorNormal() )
   ENDIF

   RETURN oCrt
Ainda tentando descobrir o problema.

Se alguém tiver alguma idéia que possa ajudar.

Problema com browse/tela

Enviado: 29 Mar 2024 14:27
por JoséQuintas
browse1.png
browse2.png
Achei uma pista.
Na segunda imagem, após clicar no button, o foco está no button, mas não deveria estar, porque crio os buttons pra não receber foco.
Executar codeblock com foco errado não funciona.

Não é suficiente pra resolver, mas é uma pista.

O mais estranho é funcionar em todas as telas onde não é a primeira coisa.
Teoricamente o foco está no lugar certo, e tudo sendo criado igual em todas as telas.

Problema com browse/tela

Enviado: 29 Mar 2024 17:05
por JoséQuintas
Resolvido.

Faltava uma dialog na lista de dialogs.

Código: Selecionar todos

   LOCAL oFrm := frmCadastroClass():New()

   oFrm:FormBegin(.F.)
   BrowseADO()
   oFrm:FormEnd()

Problema com browse/tela

Enviado: 29 Mar 2024 17:22
por JoséQuintas

Código: Selecionar todos

METHOD FormBegin() CLASS frmGuiClass

   LOCAL oElement

   Cls()
   AAdd( AppForms(), SELF )

   RETURN Nil

METHOD FormEnd() CLASS frmGuiClass

   ::GUIDestroy()
   wvgSetAppWindow():Refresh()
   ASize( AppForms(), Len( AppForms() ) - 1 )

   RETURN Nil
Se adiciono a atual, e removo a atual, o que tem a ver a anterior ?
Só se a variável segura a janela anterior, sei lá....
Não entendi, mas resolveu.

Problema com browse/tela

Enviado: 29 Mar 2024 18:57
por JoséQuintas
Agora vi.
Também precisa pelo menos de um button, pra janela anterior aguardar.
E não serve inkey().
Sei lá... vai ver isso destrói parte das rotinas/variáveis...

Nos módulos normais, que tem fonte, o módulo já faz isso.

Fazer o que... quem mandou usar WVGCRT e passar a usar dialogs.
Demorou mas aconteceu....

Problema com browse/tela

Enviado: 01 Abr 2024 14:10
por JoséQuintas
tela.png
A solução foi colocar button na outra dialog.....
dialog vazia não para em pé kkkkk
Tentar remover os outros também, e deixar só o SAIR.