LIB console imitando gráfico
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
LIB console imitando gráfico
Linhas horizontais e verticais, e FRAME (este último não é citado nos controles do Windows).
E outro detalhe: aonde está "Frame Test", o contorno é frame, mas o texto é SAY. Tá parecendo o controle Edit.
Agora dá pra usar decimais, além de poder misturar coordenadas row/col com x/y.
Segundo o autor da GTWVG, não seria possível sem reescrever muita coisa.
https://groups.google.com/forum/#!topic ... c-XQEcRbW4
Parece que comecei a ultrapassar barreiras.
E outro detalhe: aonde está "Frame Test", o contorno é frame, mas o texto é SAY. Tá parecendo o controle Edit.
Agora dá pra usar decimais, além de poder misturar coordenadas row/col com x/y.
Segundo o autor da GTWVG, não seria possível sem reescrever muita coisa.
https://groups.google.com/forum/#!topic ... c-XQEcRbW4
Parece que comecei a ultrapassar barreiras.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
LIB console imitando gráfico
O listbox "recheado": API Windows pura, mas em código fonte Harbour
Pra quem não está acostumado com isso: INLINE é quando a função é tão pequena, que já indica "inline" na própria linha da declaração.
Tudo na base de "whatsapp".... rs
A parte de defiir cores, fontes, tamanho de janela, criação, redimensionamento, etc. já tem na janela principal.
Gostaria de ver comentários sobre tudo isso.
Não sobre o que eu fiz, mas sobre isso da LIB liberar recursos pra uso via PRG.
Talvez isso tenha dado uma nova visão sobre a GTWVG também, que em último caso, é um jeito de centralizar funções no Harbour oficial.
Lembrando que, uma vez que isso tudo é API do Windows, todas as LIBs devem usar desse jeito.
Código: Selecionar todos
CREATE CLASS TstListbox INHERIT TstAny
VAR ClassName INIT "LISTBOX"
VAR objType INIT objTypeListBox
VAR Style INIT WIN_WS_CHILD + WIN_WS_VISIBLE + WIN_WS_TABSTOP + WIN_WS_GROUP
METHOD AddItem( cText ) INLINE ::SendMessage( LB_ADDSTRING, 0, cText )
METHOD Clear() INLINE ::SendMessage( LB_RESETCONTENT, 0, 0 )
METHOD ListCount() INLINE ::SendMessage( LB_GETCOUNT, 0, 0 )
METHOD ListItem() INLINE ::SendMessage( LB_GETCURSEL, 0, 0 ) + 1
ENDCLASS
Tudo na base de "whatsapp".... rs
A parte de defiir cores, fontes, tamanho de janela, criação, redimensionamento, etc. já tem na janela principal.
Gostaria de ver comentários sobre tudo isso.
Não sobre o que eu fiz, mas sobre isso da LIB liberar recursos pra uso via PRG.
Talvez isso tenha dado uma nova visão sobre a GTWVG também, que em último caso, é um jeito de centralizar funções no Harbour oficial.
Lembrando que, uma vez que isso tudo é API do Windows, todas as LIBs devem usar desse jeito.
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/
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/
LIB console imitando gráfico
Quintas,
Muito bom,
Eu trocaria a gtwvt pela gtwvg quando eu consegui dimensionar a tela do jeito que os meus sistema funcionam, ou seja, ocupar toda a área do desktop exceto a barra de tarefas, exemplificando:
Esse assunto já foi tratado aqui no fórum, mas teria que modificar o fonte c que trata o dimensionamento de tela.
Muito bom,
Eu trocaria a gtwvt pela gtwvg quando eu consegui dimensionar a tela do jeito que os meus sistema funcionam, ou seja, ocupar toda a área do desktop exceto a barra de tarefas, exemplificando:
Esse assunto já foi tratado aqui no fórum, mas teria que modificar o fonte c que trata o dimensionamento de tela.
►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)
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)
LIB console imitando gráfico
Para exemplificar o meu post anterior:
HB_GtInfo( HB_GTI_MAXIMIZED, .T. )
HB_GtInfo( HB_GTI_MAXIMIZED, .T. )
Código: Selecionar todos
FUNCTION IniciaJanela()
PUBLIC nWIDTH, nHEIGHT
cTituloJanela:="Teste com Arquivos"
HB_gtInfo(HB_GTI_FONTNAME, "Lucida Console")
HB_gtInfo(HB_GTI_ICONRES, "ICON_APP" ) //CLIENTE.RC
HB_gtInfo(HB_GTI_WINTITLE, cTituloJanela)
HB_gtInfo(HB_GTI_CLOSABLE, .F. )
HB_gtInfo(HB_GTI_CLIPBOARDDATA )
HB_gtInfo(HB_GTI_SELECTCOPY, .T. )
HB_gtInfo(HB_GTI_MOUSESTATUS, 1 )
HB_gtInfo(HB_GTI_ISGRAPHIC, .T. )
HB_gtInfo(HB_GTI_STDERRCON, .T. )
HB_gtInfo(HB_GTI_COMPATBUFFER, .T. )
HB_gtInfo(HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
HB_gtInfo( HB_GTI_SPEC, HB_GTS_SHOWWINDOW, SW_NORMAL )
HB_GtInfo( HB_GTI_MAXIMIZED, .T. )
nWIDTH :=hb_gtInfo( HB_GTI_SCREENWIDTH )
nHEIGHT:=hb_gtInfo( HB_GTI_SCREENHEIGHT )
nJanelaAsaPrev:=hwg_FindWindow(,cTituloJanela)
RETURN Nil
FUNCTION HB_GTSYS()
REQUEST HB_GT_WVT_DEFAULT
REQUEST HB_GT_WVT
REQUEST HB_GT_WGU
REQUEST HB_GT_WVG
RETURN Nil
►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)
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)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
LIB console imitando gráfico
É a WVT que tem opção de espacejamento entre linhas?
Se for, melhor até se der pra juntar os dois mundos de uma vez.
Se for, melhor até se der pra juntar os dois mundos de uma vez.
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/
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/
LIB console imitando gráfico
Tenta usar esse código.asimoes escreveu:Eu trocaria a gtwvt pela gtwvg quando eu consegui dimensionar a tela do jeito que os meus sistema funcionam, ou seja, ocupar toda a área do desktop exceto a barra de tarefas
Código: Selecionar todos
HB_GtInfo( HB_GTI_RESIZABLE, .F. )
screenWidth := HB_GTINFO( HB_GTI_DESKTOPWIDTH )
screenHeight:= HB_GTINFO( HB_GTI_DESKTOPHEIGHT )
wvt_SetFont( "Lucida Console", Round(( screenHeight / MaxRow() ),0)-0.5, Round(( screenWidth / MaxCol() ),0), 0 )
WVT_MAXIMIZE()
FUNCTION HB_GTSYS()
REQUEST HB_GT_WVG_DEFAULT
REQUEST HB_GT_WVG
REQUEST HB_GT_WGU
REQUEST HB_GT_WVG
RETURN Nil
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
LIB console imitando gráfico
Acho que encontrei algo.
Lembro que a GTWVG cobria todo desktop mas sobravam margens laterais, e fui eu quem pediu pra alterar.
Acho que foi esta alteração.
Prefiro do jeito que ficou.
Mas pelo que vejo, foi acrescentada opção de borda.
Teria que testar se a escolha de borda é pra deixar área livre, ou se é pra cobrir uma área a mais.
Acho que seria algo como: cada_margem = ( largura desktop - largura janela ) / 2
Lembro que a GTWVG cobria todo desktop mas sobravam margens laterais, e fui eu quem pediu pra alterar.
Acho que foi esta alteração.
Prefiro do jeito que ficou.
Mas pelo que vejo, foi acrescentada opção de borda.
Teria que testar se a escolha de borda é pra deixar área livre, ou se é pra cobrir uma área a mais.
Acho que seria algo como: cada_margem = ( largura desktop - largura janela ) / 2
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/
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/
LIB console imitando gráfico
Quintas,
Como é que testa esse HB_GTI_BORDERSIZES ?
Como é que testa esse HB_GTI_BORDERSIZES ?
►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)
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)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
LIB console imitando gráfico
Deveria ser assim, mas não faz diferença.
Aliás, aqui nem o maximizar funciona na gtwvg.
Código: Selecionar todos
SetMode( 25, 80 )
CLS
oMargin := hb_gtInfo( HB_GTI_BORDERSIZES )
? "atual"
FOR EACH oElement IN oMargin
? oElement
oElement *= 10
NEXT
? "calculado"
FOR EACH oElement in oMargin
? oElement
NEXT
hb_gtInfo( HB_GTI_BORDERSIZES, oMargin )
oMargin := hb_gtInfo( HB_GTI_BORDERSIZES )
? "resultado"
FOR EACH oElement IN oMargin
? oElement
NEXT
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/
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/
LIB console imitando gráfico
Eu consegui um resultado aproximado com esse código no meu notebook com resolução 1366 por 768:
Não sei se com resolução diferentes o resultado seja igual.
Isso só funciona com SetMode(25,80)
Não sei se com resolução diferentes o resultado seja igual.
Isso só funciona com SetMode(25,80)
Código: Selecionar todos
hb_gtInfo(HB_GTI_ICONRES, "ICON_APP" )
hb_gtInfo(HB_GTI_WINTITLE, cTituloJanela)
hb_GtInfo( HB_GTI_RESIZABLE, .F. )
hb_gtInfo(HB_GTI_COMPATBUFFER, .F. )
hb_gtInfo(HB_GTI_CLOSABLE, .T. )
screenWidth := hb_GtInfo( HB_GTI_DESKTOPWIDTH )
screenHeight:= hb_GtInfo( HB_GTI_DESKTOPHEIGHT )
WVT_SetFont( "Lucida Console", Round(( screenHeight / MaxRow() ),0)-4, ( screenWidth / MaxCol() ), 0 )
hb_GtInfo( HB_GTI_MAXIMIZABLE )
►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)
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)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
LIB console imitando gráfico
Aqui o maximizar da GTVVG não está funcionando.
Em mais algum lugar acontece isso?
Em mais algum lugar acontece isso?
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
LIB console imitando gráfico
A propósito: ajuste o fonte pra ver se continua funcionando.
Row/Col começa em ZERO, então MaxRow() e MaxCol() retornam largura - 1
Row/Col começa em ZERO, então MaxRow() e MaxCol() retornam largura - 1
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
LIB console imitando gráfico
Como eu já disse, não conheço linguagem C.
Mas me chamou a atenção isto no commctl.h, do msvc2010
Ou seja, mesmo no fonte C usando função, trata-se do sendmessage.
Cheguei nele pesquisando o listview.
Trata-se de uma grid, parecido com o tbrowse, mas pra qualquer coisa: texto, ícone, etc. com várias colunas.
Aqui não tem jeito, só com ajuda de quem conhece linguagem C, porque precisa uns tipos especiais de variáveis, talvez seja array.
Porque complicado?
Exemplos do listview:
E a estrutura pra quem conhece C e souber o equivalente em Harbour.
http://www.codeproject.com/Articles/289 ... er-Win-API
Mas me chamou a atenção isto no commctl.h, do msvc2010
Código: Selecionar todos
#define ListView_InsertItem(hwnd, pitem) \
(int)SNDMSG((hwnd), LVM_INSERTITEM, 0, (LPARAM)(const LV_ITEM *)(pitem))
Cheguei nele pesquisando o listview.
Trata-se de uma grid, parecido com o tbrowse, mas pra qualquer coisa: texto, ícone, etc. com várias colunas.
Aqui não tem jeito, só com ajuda de quem conhece linguagem C, porque precisa uns tipos especiais de variáveis, talvez seja array.
Porque complicado?
Exemplos do listview:
E a estrutura pra quem conhece C e souber o equivalente em Harbour.
http://www.codeproject.com/Articles/289 ... er-Win-API
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
LIB console imitando gráfico
Como o listview não funcionou, usei o espaço pra mostrar o tstText() com outros fontes.
Só lembrando:
Escolher cor e fonte vale pra qualquer controle.
Eu é que não estou usando no teste.
Só lembrando:
Escolher cor e fonte vale pra qualquer controle.
Eu é que não estou usando no teste.
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/
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/
LIB console imitando gráfico
Listview com minigui
►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)
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)

