GTWVG browse em outra janela
Enviado: 19 Mar 2023 15:45
Código: Selecionar todos
FUNCTION BrowseADO( cnSQL, oTBrowse, cFilterKey, bKeyboard, bUserFunction, nFixToCol, aADOFilterList )
IF Len( appForms() ) > 0 // .AND. oCrt == NIL
Atail( AppForms()):GuiHide()
ENDIF
oFrm := frmGuiClass():New()
wSave()
oFrm:FormBegin()
O que chamo de oFrm, e salvo em AppForms(), seria a informação da parte GUI.
Atail( AppForms() ):GuiHide()
Isso acima esconde todos os componentes GUI da "janela anterior" (que na verdade é a mesma janela)
wSave() é meu SAVE SCREEN.
Traduzindo:
O que é texto, SAVE SCREEN salva, depois dá pra retornar.
O que é componente do Windows, GUI, vou precisar deles depois, então apenas escondo/deixo não visível.
A tela fica livre pra qualquer coisa.
O browse também tem botões, que são criados.
No final destruo esses botões do browse.
restauro a tela, e retorno os componentes windows pra visíveis.
Até aí, tudo bem, tá funcionando direito.
A diferença do uso normal de GUI é esse fato de reaproveitar janela, e é o que dá esse "trabalhinho" a mais.
O que quero fazer agora é abrir uma nova janela pro browse, assim elimina esse "trabalhinho" extra.
Não só isso, passa a ser o funcionamento normal de GUI.
Por enquanto imagino duas possibilidades: ou wvgCrt(), ou hb_gtReload("WVG")
Nos dois casos vai dar uma janela nova, o que acaba com Hide()/Show() e com SAVE SCREEN/RESTORE SCREEN.
O problema que pode aparecer é das janelas inverterem de posição, e o usuário pensar que travou tudo.
Alguém já fez isso em GTWVG ?
Ou talvez um Style de janela.
O radical seria o TOPMOST, que deixa a janela no topo de tudo, mas eu preferia um que fizesse isso POR THREAD, menos radical.