Mostrar informação no rodapé do form

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Mostrar informação no rodapé do form

Mensagem 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

Código: Selecionar todos

HB_GtInfo( HB_GTI_WINTITLE, "Usu rio: " + nomeusuario)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar informação no rodapé do form

Mensagem 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()
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/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Mostrar informação no rodapé do form

Mensagem por asimoes »

Quintas,

Tem algum exemplo de statusbar usando a gtwvg ?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar informação no rodapé do form

Mensagem 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().
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/
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mostrar informação no rodapé do form

Mensagem 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
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar informação no rodapé do form

Mensagem por JoséQuintas »

Legal, funcionou.
status.png
Mas conforme eu falei:
Será que compensa isso tudo só pra ter um texto?
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar informação no rodapé do form

Mensagem 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
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/
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Mostrar informação no rodapé do form

Mensagem por porter »

Obrigado a todos, deu certo o exemplo do Toledo.
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Mostrar informação no rodapé do form

Mensagem 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 
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Mostrar informação no rodapé do form

Mensagem por asimoes »

Tenta:

oStatusBar:Destroy()
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar informação no rodapé do form

Mensagem 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()
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar informação no rodapé do form

Mensagem 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.
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/
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Mostrar informação no rodapé do form

Mensagem 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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar informação no rodapé do form

Mensagem por JoséQuintas »

Código: Selecionar todos

FUNCTION ExpandirTela(linhas,colunas)
Hb_gtReload( "WVG" )
Isso não expande janela. Isso cria uma NOVA janela.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mostrar informação no rodapé do form

Mensagem 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.
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/
Responder