Página 1 de 1

Ajuda para definir fonte na GTWvG com uso SETMODE(50,80)

Enviado: 11 Jun 2015 20:01
por ANDRIL
Estou usando a GTWvG no sistema e estou com problema na definição da fonte. Como uso SETMODE(50,80) a fonte fica meio "achatada" o que torna dificil para o usuário entender. Quando compilado com a GTWvG o atalho do sistema não permite ajustar o tamanho da fonte e largura da janela como nos aplicativos em clipper.

Código: Selecionar todos

   REQUEST HB_LANG_PT
   REQUEST HB_CODEPAGE_PT850

   REQUEST HB_GT_WVG_DEFAULT
   REQUEST HB_GT_WVT
   REQUEST HB_GT_WIN
   SETMODE(50, 80 )
   Wvt_SetFont( "Lucida",14, 15,30 )  
! Já tentei diversas combinações umas a tela fica muito pequena, outras come a parte de baixo etc.

No arquivo .hbp uso:
-gtwvg
-gui

Gostaria que pelo menos as letras fossem tipo "negrito" ou conseguir colocar a janela na tela inteira.
Já tentei estes codigos tambem e não ficaram bons:

Código: Selecionar todos

         nScrWidth := Wvt_GetScreenWidth()
         if     nScrWidth >= 1280
            nSize := 28
         elseif nScrWidth >= 1200
            nSize := 22
         elseif nScrWidth >= 1000
            nSize := 18
         elseif nScrWidth >= 800
            nSize := 16
         else
            nSize := 15
         endif
        Wvt_SetFont( "Lucida",nSize, 15,30 )  
Já tentei usar em tela inteira com o código abaixo, porem é incompativel com SETMODE(50,80) ficando uns buracos na tela. Esse código foi sugerido aqui mesmo no forum:

Código: Selecionar todos

HB_GtInfo( HB_GTI_ISFULLSCREEN, .F. ) 
HB_GtInfo( HB_GTI_ISFULLSCREEN, .T. ) 
Então recorro aos colegas mais experientes para tentar solucionar esta questão.
Ate+

Editei a mensagem pois tinha colocado SETPOS em vez de SETMODE que é o correto.

Ajuda para definir fonte na GTWvG com uso SETMODE(50,80)

Enviado: 12 Jun 2015 02:52
por JoséQuintas
O ajuste do fonte na GTWVG é sempre automático, conforme o tamanho da janela.
Caso queira, pode selecionar um fonte diferente - mas fonte e não tamanho.

A única coisa que acrescentei foi salvar/restaurar a última configuração.
De qualquer jeito, na primeira vez entra a default, e o usuário altera o tamanho da janela do jeito que quiser.
Nas próximas, abre do jeito que o usuário deixar.

Testa aí a fonte default que uso:

Código: Selecionar todos

SetMode( 40, 80 )
hb_GtInfo( HB_GTI_FONTNAME, "Lucida Console" )
CLS
Além disso, não adianta querer configurar tela quadrada pra Widescreen, que com certeza vai ficar achatado ao maximizar.
Aqui uso 40 X 132, o que facilita relatório matricial em vídeo, e visualizar textos de log.

Ajuda para definir fonte na GTWvG com uso SETMODE(50,80)

Enviado: 12 Jun 2015 03:08
por JoséQuintas
A mesma tela, em meus 3 monitores.
Se for aproveitar o espaço da tela, com linhas/colunas fixas, não tem como não deformar.

Nota: o print-screen pega os 3 monitores juntos, como se fossem um só, então o printscreen acrescenta espaços adicionais.

Ajuda para definir fonte na GTWvG com uso SETMODE(50,80)

Enviado: 12 Jun 2015 03:20
por JoséQuintas
Só faltou finalizar:
Deixa como está, talvez escolhendo outro fonte, e acrescenta opção de salvar/restaurar automático.
Basta o usuário escolher do jeito que quiser e pronto, inclusive maximizado.

E de preferência, deixe a tela do sistema retangular, pra widescreen, que é a mais comum.

Ajuda para definir fonte na GTWvG com uso SETMODE(50,80)

Enviado: 12 Jun 2015 07:52
por ANDRIL
José, obrigado por responder. Após postar, fiquei testando a fonte "Consolas" e ficou com um tamanho bom e legível. Mais segui sua dica "Lucida Console" por que achei que fica muito semelhante a tela inteira.

Vou colocar em produção a nova versão e ver como se adapta a cada cliente.
Ate+

Ajuda para definir fonte na GTWvG com uso SETMODE(50,80)

Enviado: 13 Jun 2015 21:55
por JoséQuintas
Esta foi a única rotina adicional que criei, pra salvar/restaurar a última configuração.
Altere para seu nome, pra não ficar como "JPA Tecnologia"
E se quiser, altere também os nomes FontSize, FontWidth e FontWeight.

Chama normal na entrada do aplicativo, e na saída passa o parâmetro .T. pra salvar.

A partir daí, nunca mais precisa se preocupar com monitor, o usuário vai deixar do jeito que quiser na máquina dele.

Atenção à sequência:

Código: Selecionar todos

   IF lVisible
      SetMode( 40, 132 ) 
      GtSetupFont()
      // GtSetupPalette() // conjunto de cores diferentes do padrão
      CLS
   ENDIF

Código: Selecionar todos

// GTSetupFont()           // usa última configuração válida
// GTSetupFont( .T. )    // salva configuração atual

FUNCTION GtSetupFont( lSave )
   LOCAL cFontSize, cFontWidth, cFontWeight, cRootKey

   lSave := iif( lSave == NIL, .F., lSave )
   cRootKey := "HKCU\Software\JPA Tecnologia\"
   IF lSave
      Win_RegWrite( cRootKey + "FontSize", LTrim( Str( HB_GtInfo( HB_GTI_FONTSIZE ) ) ) )
      Win_RegWrite( cRootKey + "FontWidth", LTrim( Str( HB_GtInfo( HB_GTI_FONTWIDTH ) ) ) )
      Win_RegWrite( cRootKey + "FontWeight", LTrim( Str( HB_GtInfo( HB_GTI_FONTWEIGHT ) ) ) )
   ELSE
      hb_GtInfo( HB_GTI_FONTNAME, "Lucida Console" )
      IF Win_RegRead( cRootKey + "FontSize" ) != NIL
         cFontSize   := Win_RegRead( cRootKey + "FontSize" )
         cFontWidth  := Win_RegRead( cRootKey + "FontWidth" )
         cFontWeight := Win_RegRead( cRootKey + "FontWeight" )
         IF Val( cFontSize ) > 0 .AND. Val( cFontWidth ) > 0 .AND. Val( cFontWeight ) > 0
            hb_gtInfo( HB_GTI_FONTSIZE, Val( cFontSize ) )
            hb_gtInfo( HB_GTI_FONTWIDTH, Val( cFontWidth ) )
            hb_gtInfo( HB_GTI_FONTWEIGHT, Val( cFontWeight ) )
         ENDIF
      ENDIF
   ENDIF
   RETURN NIL

Ajuda para definir fonte na GTWvG com uso SETMODE(50,80)

Enviado: 23 Fev 2018 14:47
por syslink
tem alguma função que faz uma verificação se existe uma fonte instalada no windows?

Ajuda para definir fonte na GTWvG com uso SETMODE(50,80)

Enviado: 23 Fev 2018 15:11
por microvolution
eu tentei usar assim:

Código: Selecionar todos

	if WvgFont("VisualLib")
		Wvt_SetFont( "visualLib", 28, 12, 0 )
	else
		Wvt_SetFont( "Lucida Console", 28, 12, 0 )
	endif
Mas não dá certo. então "comentei" essas linhas pra num futuro descobrir da lista de funções que manipulam fonte na gtwvg.

Ajuda para definir fonte na GTWvG com uso SETMODE(50,80)

Enviado: 25 Fev 2018 06:54
por JoséQuintas
Talvez isto
? hb_gtInfo( HB_GTI_FONTNAME, "Lucida Console" )
Ou talvez isto
hb_gtInfo( HB_GTI_FONTNAME, "Lucida Console" )
IF hb_gtInfo( HB_GTI_FONTNAME ) != "Lucida Console" )
? "Fonte não trocado"
ENDIF
A mesma função do post de 2015.