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

GTWVG com API Windows somente no Harbour.
No Harbouir 3.4 está sendo usado pointer, aonde no 3.2 é numérico.

Moderador: Moderadores

Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

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

Mensagem 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.
Anexos
cso_letra_achatada.jpg
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem 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.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem 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.
Anexos
gtwvg.png
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem 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.
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/
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

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

Mensagem 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+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem 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
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/
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

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

Mensagem por syslink »

tem alguma função que faz uma verificação se existe uma fonte instalada no windows?
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

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

Mensagem 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.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem 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.
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/
Responder