TELA CHEIA x SETMODE [x]Harbour

Foto de Anderson

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
    
Total votes: 0