Categoria:
Veremos nesta matéria como colocar a tela cheia do seu sistema usando o [x]Harbour.
Com isso você também resolve o problema do SETMODE no Windows 10. No Windows 7 não há problemas com o SETMODE, você pode alterar de 25 linhas para 43 sem problemas, mas no Windows 10 ele fica nas 25 linhas e acaba cortando as linhas 25 a 42 que deveriam ser mostradas na tela.
A solução é linkar a lib gráfica WVT, vejamos:
********************************
*** TELA GRÁFICA
********************************
#include "hbgtinfo.ch"
REQUEST HB_GT_WVT_DEFAULT
REQUEST HB_GT_WVT
#include "hbdyn.ch"
FUNCTION MAIN()
*----------------------------------------------------------------------------
// TELA GRÁFICA
*----------------------------------------------------------------------------
*** INICIALIZAÇÃO BÁSICA DA TELA GRÁFICA ***
WVT_SETONTOP()
WVT_SetTitle("Título da janela") //titulo da janela
WVT_SETICON('app.ico') //icone da janela do sistema
WVT_SetCodePage(255) // OEM_CHARSET
*** JANELAS ***
HB_GtInfo( HB_GTI_ALTENTER, .T. ) // ALT + ENTER tela inteira
HB_GtInfo( HB_GTI_CLOSABLE, .F. ) // bloqueia fechar a janela pelo botão X
HB_GtInfo( HB_GTI_SELECTCOPY, .T. ) // Toggles screen content selection and copy to clipboard
HB_GtInfo( HB_GTI_RESIZABLE, .T. ) // Toggles ability to resize window.
HB_GtInfo( HB_GTI_RESIZEMODE, HB_GTI_RESIZEMODE_FONT ) // redimensionar letras
*** LETRAS ***
HB_GtInfo( HB_GTI_FONTNAME, "Courier New" ) // fonte da letra
HB_GTInfo(HB_GTI_FONTQUALITY, HB_GTI_FONTQ_HIGH ) // qualidade da letra HIGH
*** TELA CHEIA
SETMODE(25,80)
nFontWidth := Int( hb_gtinfo(HB_GTI_DESKTOPWIDTH) / 80)
nFontSize := Int( hb_gtinfo(HB_GTI_DESKTOPHEIGHT) / 25)
hb_gtinfo(HB_GTI_FONTWIDTH, nFontWidth)
hb_gtinfo(HB_GTI_FONTSIZE, nFontSize)
/* TAMANHO DOS CARACTERES PERSONALIZADO
hb_gtinfo(HB_GTI_FONTWIDTH, 10) // LARGURA
hb_gtinfo(HB_GTI_FONTSIZE, 18) // ALTURA
*/
Dessa forma o sistema terá 25 linhas por 80 colunas em tela cheia.
Nada impede que você queira colocar um tamanho de fonte personalizada. Como eu altero minhas telas para 43 linhas e às vezes 130 colunas então prefiro definir um tamanho de caracteres que se adeque em cada caso
/* *** TELA CHEIA
SETMODE(25,80)
nFontWidth := Int( hb_gtinfo(HB_GTI_DESKTOPWIDTH) / 80)
nFontSize := Int( hb_gtinfo(HB_GTI_DESKTOPHEIGHT) / 25)
hb_gtinfo(HB_GTI_FONTWIDTH, nFontWidth)
hb_gtinfo(HB_GTI_FONTSIZE, nFontSize)
*/
// TAMANHO DOS CARACTERES PERSONALIZADO
hb_gtinfo(HB_GTI_FONTWIDTH, 10) // LARGURA
hb_gtinfo(HB_GTI_FONTSIZE, 18) // ALTURA
