Clipper On Line • Ver Tópico - Mostrar informação no rodapé do form

Mostrar informação no rodapé do form

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

Moderador: Moderadores

 

Mostrar informação no rodapé do form

Mensagempor porter » 24 Mar 2018 11:43

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

HB_GtInfo( HB_GTI_WINTITLE, "Usu rio: " + nomeusuario)
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Mostrar informação no rodapé do form

Mensagempor JoséQuintas » 24 Mar 2018 14:54

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Mostrar informação no rodapé do form

Mensagempor asimoes » 24 Mar 2018 18:03

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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Mostrar informação no rodapé do form

Mensagempor JoséQuintas » 24 Mar 2018 18:48

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Mostrar informação no rodapé do form

Mensagempor Toledo » 24 Mar 2018 20:00

Amigos, segue um exemplo de StatusBar:

FUNCTION StatusBar()
LOCAL oStatusBar, oPanel
   oStatusBar := wvgStatusBar():New( wvgSetAppWindow() ):Create( , , , , , .T. )
   oPanel := oStatusBar:GetItem(1)
   oPanel:Caption := "Forum PCToledo - http://www.pctoledo.com.br/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 de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Mostrar informação no rodapé do form

Mensagempor JoséQuintas » 24 Mar 2018 22:27

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Mostrar informação no rodapé do form

Mensagempor JoséQuintas » 24 Mar 2018 22:37

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.

http://www.pctoledo.com.br/forum/viewtopic.php?f=47&t=19066#p122467
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Mostrar informação no rodapé do form

Mensagempor porter » 26 Mar 2018 08:57

Obrigado a todos, deu certo o exemplo do Toledo.
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Mostrar informação no rodapé do form

Mensagempor porter » 26 Mar 2018 11:39

Depois de StatusBar criado, tem como em algum momento desabilitar,
dessa forma não da certo.
oStatusBar := wvgStatusBar():New( wvgSetAppWindow() ):Create( , , , , , .F. )

FUNCTION StatusBar()
   LOCAL oStatusBar, oPanel
   oStatusBar := wvgStatusBar():New( wvgSetAppWindow() ):Create( , , , , , .T. )
   oPanel := oStatusBar:GetItem(1)
   oPanel:Caption := "Forum PCToledo - http://www.pctoledo.com.br/forum"
   oPanel1 := oStatusBar:addItem()
   oPanel1:caption := "Demo StatusBar"
   oPanel2 := oStatusBar:addItem()
     oPanel2:caption := "Data: "+DTOC(Date())
   RETURN NIL
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Mostrar informação no rodapé do form

Mensagempor asimoes » 26 Mar 2018 12:00

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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Mostrar informação no rodapé do form

Mensagempor JoséQuintas » 26 Mar 2018 12:20

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()

oWvgStatus:Hide()
oWvgStatus:Show()
oWvgStatus:Destroy()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Mostrar informação no rodapé do form

Mensagempor JoséQuintas » 26 Mar 2018 12:29

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

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Mostrar informação no rodapé do form

Mensagempor porter » 27 Mar 2018 15:18

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 ?

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
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Mostrar informação no rodapé do form

Mensagempor JoséQuintas » 27 Mar 2018 16:11

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Mostrar informação no rodapé do form

Mensagempor JoséQuintas » 27 Mar 2018 16:21

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot], Itamar M. Lins Jr. e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro