Página 6 de 8
LIB console imitando gráfico
Enviado: 01 Mai 2016 02:57
por JoséQuintas
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.
LIB console imitando gráfico
Enviado: 03 Mai 2016 20:06
por JoséQuintas
O listbox "recheado": API Windows pura, mas em código fonte Harbour
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
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.
LIB console imitando gráfico
Enviado: 04 Mai 2016 08:11
por asimoes
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.
LIB console imitando gráfico
Enviado: 04 Mai 2016 08:19
por asimoes
Para exemplificar o meu post anterior:
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
LIB console imitando gráfico
Enviado: 04 Mai 2016 09:41
por JoséQuintas
É a WVT que tem opção de espacejamento entre linhas?
Se for, melhor até se der pra juntar os dois mundos de uma vez.
LIB console imitando gráfico
Enviado: 04 Mai 2016 10:51
por ANDRIL
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
Tenta usar esse código.
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
Pode funcionar de pronto, ou se a janela ficar menor do que já era, tente alterar o tamanho da tela pelo Windows nas propriedades de vídeo, aumentando ou diminuindo o tamanho.
Ate+
LIB console imitando gráfico
Enviado: 04 Mai 2016 11:37
por JoséQuintas
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
LIB console imitando gráfico
Enviado: 04 Mai 2016 12:06
por asimoes
Quintas,
Como é que testa esse HB_GTI_BORDERSIZES ?
LIB console imitando gráfico
Enviado: 04 Mai 2016 12:45
por JoséQuintas
Deveria ser assim, mas não faz diferença.
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
Aliás, aqui nem o maximizar funciona na gtwvg.
LIB console imitando gráfico
Enviado: 04 Mai 2016 12:53
por asimoes
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)
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 )
LIB console imitando gráfico
Enviado: 04 Mai 2016 13:15
por JoséQuintas
Aqui o maximizar da GTVVG não está funcionando.
Em mais algum lugar acontece isso?
LIB console imitando gráfico
Enviado: 04 Mai 2016 13:17
por JoséQuintas
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
LIB console imitando gráfico
Enviado: 04 Mai 2016 17:25
por JoséQuintas
Como eu já disse, não conheço linguagem C.
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))
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
LIB console imitando gráfico
Enviado: 04 Mai 2016 23:16
por JoséQuintas
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.
LIB console imitando gráfico
Enviado: 05 Mai 2016 08:00
por asimoes