Página 1 de 2
Mostrar informação no rodapé do form
Enviado: 24 Mar 2018 11:43
por porter
Olá pessoal,
Com esse comando, consigo mostrar informações no topo da tela,
qual comando devo usar para mostrar no rodapé, tem como ?
HARBOUR 3.2.0(dev), GTWVG
Mostrar informação no rodapé do form
Enviado: 24 Mar 2018 14:54
por JoséQuintas
Correção: com esse comando consegue alterar o título da janela.
Para o rodapé, eu uso a opção 1, por enquanto, mas depende do que exatamente está pensando em fazer.
Opção 1: A Tradicional de console: @ MawRow(), 0 SAY ""
Opção 2: a barra de status
Opção 3: usar um controle GUI, que vai sempre acompanhar a janela
Opção 4: algum wvt* que fique sendo repintado em wvt_Paint()
Mostrar informação no rodapé do form
Enviado: 24 Mar 2018 18:03
por asimoes
Quintas,
Tem algum exemplo de statusbar usando a gtwvg ?
Mostrar informação no rodapé do form
Enviado: 24 Mar 2018 18:48
por JoséQuintas
asimoes escreveu:Tem algum exemplo de statusbar usando a gtwvg ?
Não entendi direito o uso. Se eu fosse usar, pegaria um de meus controles pra facilitar.
Por exemplo:
criando um "textbox" na linha MaxRow(), ele permaneceria sempre nessa posição, igual um rodapé, ou igual a barra de status.
para barra com divisões, seriam 2 ou mais textbox, por exemplo um na MaxRow() até a metade, e outro em MaxRow() até o final.
Mais fácil do que se aprofundar na barra de status.
Tem coisas que não sei se compensa: por exemplo a barra de status.
Vai usar pra que? pra colocar texto? Então coloca igual console que é mais prático... E o tamanho do texto já vai acompanhar o redimensionamento de janela.
Talvez compense fazer apenas o traço separador como GUI, já que a cor de fundo pode ser obtida por SetColor().
Mostrar informação no rodapé do form
Enviado: 24 Mar 2018 20:00
por Toledo
Amigos, segue um exemplo de StatusBar:
Código: Selecionar todos
FUNCTION StatusBar()
LOCAL oStatusBar, oPanel
oStatusBar := wvgStatusBar():New( wvgSetAppWindow() ):Create( , , , , , .T. )
oPanel := oStatusBar:GetItem(1)
oPanel:Caption := "Forum PCToledo - https://pctoledo.org/forum"
oPanel1 := oStatusBar:addItem()
oPanel1:caption := "Demo StatusBar"
oPanel2 := oStatusBar:addItem()
oPanel2:caption := "Data: "+DTOC(Date())
RETURN NIL
Abraços
Mostrar informação no rodapé do form
Enviado: 24 Mar 2018 22:27
por JoséQuintas
Legal, funcionou.
Mas conforme eu falei:
Será que compensa isso tudo só pra ter um texto?
Mostrar informação no rodapé do form
Enviado: 24 Mar 2018 22:37
por JoséQuintas
Um exemplo, usando os controles que "inventei" está aqui.
Usei o que chamei de wvgTstText(). Tst é pra indicar que apesar de funcionar, considero em fase de teste ainda.
https://pctoledo.org/forum/viewto ... 66#p122467
Mostrar informação no rodapé do form
Enviado: 26 Mar 2018 08:57
por porter
Obrigado a todos, deu certo o exemplo do Toledo.
Mostrar informação no rodapé do form
Enviado: 26 Mar 2018 11:39
por porter
Depois de StatusBar criado, tem como em algum momento desabilitar,
dessa forma não da certo.
oStatusBar := wvgStatusBar():New( wvgSetAppWindow() ):Create( , , , , , .F. )
Código: Selecionar todos
FUNCTION StatusBar()
LOCAL oStatusBar, oPanel
oStatusBar := wvgStatusBar():New( wvgSetAppWindow() ):Create( , , , , , .T. )
oPanel := oStatusBar:GetItem(1)
oPanel:Caption := "Forum PCToledo - https://pctoledo.org/forum"
oPanel1 := oStatusBar:addItem()
oPanel1:caption := "Demo StatusBar"
oPanel2 := oStatusBar:addItem()
oPanel2:caption := "Data: "+DTOC(Date())
RETURN NIL
Mostrar informação no rodapé do form
Enviado: 26 Mar 2018 12:00
por asimoes
Tenta:
oStatusBar:Destroy()
Mostrar informação no rodapé do form
Enviado: 26 Mar 2018 12:20
por JoséQuintas
porter escreveu:Depois de StatusBar criado, tem como em algum momento desabilitar,dessa forma não da certo.oStatusBar := wvgStatusBar():New( wvgSetAppWindow() ):Create( , , , , , .F. )
De que forma? Isso que descreveu é pra criar.
Acho esquisito querer desabilitar, em todo caso, provavelmente o Hide()
Código: Selecionar todos
oWvgStatus:Hide()
oWvgStatus:Show()
oWvgStatus:Destroy()
Mostrar informação no rodapé do form
Enviado: 26 Mar 2018 12:29
por JoséQuintas
Aproveitando.....
Como geralmente em GUI todos os controles são janelas.... é comum em qualquer LIB GUI que exista um fonte de janela base pra tudo.
O fonte da statusbar fica em statbar.prg
Código: Selecionar todos
CREATE CLASS WvgStatusBar INHERIT WvgWindow /* WvgActiveXControl */
Ele recebe por herança (INHERIT)... a classe WvgWindow, que é pra janela.
A classe wvgWindow está em wnd.prg
Lá vai encontrar os métodos Hide(), Show(), Enable(), Disable(), Destroy(), etc.
Como não tem manual disso, então só resta olhar os fontes pra ver o que há de disponível.
Esse INHERIT, herança, significa que tudo que está na janela já fica disponível pra todos os controles (que são... janelas).
Ao esconder a janela, esconde o controle que está na janela, no caso a wvgStatusbar()
É bom lembrar disso: janela sobre janela
Se statusbar é uma janela... precisa existir uma função em statusbar, ou na janela da statusbar.
E por usar herança, tudo disponível pra janela está disponível pra statusbar.
Mostrar informação no rodapé do form
Enviado: 27 Mar 2018 15:18
por porter
Depois de StatusBar criado, quando entro em um cadastro por exemplo e expando a Tela,
o StatusBar desaparece, se tentar criar novamente, da o seguinte erro:
Error Base/1132 Erro de limite: acesso de array Arguments: ( [ 1] = Type: A Val: {Array of 0 Items} [2] = Type: N Val: 1)
Como posso solucionar esse problema de não apagar o StatusBar quando expando a Tela, e
se tentar criar novamente o StatusBar, não dar erro ?
Código: Selecionar todos
StatusBar() // Cria o StatusBar
CADFOR() // Entro no cadastro
StatusBar() // aqui da o erro.
//cadfor.prg
FUNCTION CADFOR
ExpandirTela(25,80)
RETURN
FUNCTION ExpandirTela(linhas,colunas)
Hb_gtReload( "WVG" )
SETMODE(linhas, colunas)
SETCOLOR("W/B, N/W,,,W+/G+B")
screenWidth := HB_GTINFO( HB_GTI_DESKTOPWIDTH )
screenHeight:= HB_GTINFO( HB_GTI_DESKTOPHEIGHT )
wvt_SetFont( "courier new" , Round(( screenHeight / MaxRow() ),0)-4, Round(( screenWidth / MaxCol() ),0), 0 )
WVT_MAXIMIZE()
HB_GtInfo( HB_GTI_RESIZABLE, .F. )
HB_GtInfo( HB_GTI_WINTITLE, "Usu rio: " + nomeusuario) // APARECE Nome do usuario no topo da tela
RETURN
Mostrar informação no rodapé do form
Enviado: 27 Mar 2018 16:11
por JoséQuintas
Código: Selecionar todos
FUNCTION ExpandirTela(linhas,colunas)
Hb_gtReload( "WVG" )
Isso não expande janela. Isso cria uma NOVA janela.
Mostrar informação no rodapé do form
Enviado: 27 Mar 2018 16:21
por JoséQuintas
Usando hb_gtReload() está criando uma nova janela.
Pra usar mais de uma janela desse jeito, vai precisar ficar transferindo o controle entre elas com hb_gtSelect().
No DEMOWVG isso é feito, se não me engano, com uma função SetGt() que está no demo.
O que aconteceu é que criou uma janela nova.
A janela nova não tem statusbar.
Apesar de criar nova janela, o foco do aplicativo continua na anterior.
Por isso, a criação de statusbar está tentando criar na anterior, que já tem, e por isso deu erro.