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: 1309
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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 1309
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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 1234
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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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