Página 1 de 5

Harbour + Visual LIB

Enviado: 22 Mai 2009 09:40
por Antonio
Pessoal

Sera possivel contornar o problema da desconfiguração de caracteres que a visual lib tem quando minimizamos e apos maximixamos a janela da aplicação no windows?


Ouço comentarios de que com GTWVW, GTWVT, etc seria possivel contornar esse problema.

Peço ajuda pois nunca usei essas GTs, no sentido de implementar isso com a visual lib.

Neste pequeno codigo a seguir, como eu faria para usar essas GTs e resolver o problema citado?

Código: Selecionar todos

#include "inkey.ch"
#include "visual2.ch"

FUNCTION MAIN()
Local aEnv

set key K_F10 to Saida
SetKeyMouse( K_F10, { 24, 24, 72, 79 } )
Desktop()
vlsetmouse(.t.)

DrawFn( 10, "Sa¡da" )

mBar := NewBarMenu()
mPdn := NewDownMenu()

AddBarItem( mBar, "&Pull-Down" , "Demonstra‡Æo dos recursos do Menu Pull-Down", mPdn )

AddDownItem( mPdn, "Op‡Æo &1", "Primeira Op‡Æo - Sem fun‡Æo vinculada" )
AddDownItem( mPdn, "Op‡Æo &2", "Segunda Op‡Æo - Sem fun‡Æo vinculada" )
AddDownSep ( mPdn )     // Linha de separa‡Æo
AddDownItem( mPdn, "Sai&r", "Encerra o programa", { || Saida() } )


WHILE .T.

   BarMenu( mBar )

   set key K_F10 to
   SetKeyMouse( K_F10, {} )

   VLExit()

   set key K_F10 to saida
   SetKeyMouse( K_F10, { 24, 24, 72, 79 } )
END

RETURN NIL


FUNCTION SAIDA

 Local aKM := SetKeyMouse( K_F10, {} )
 Set Key K_F10 to

 VLExit()

 Set key K_F10 to saida
 SetKeyMouse( K_F10, aKM )

RETURN NIL

A versão do xHarbour que estou usando é a 1.2.1 (BCC 5.8.2)
Tenho a Visual Lib convertida para xHarbour


Grato
Antonio Carlos
Nota de Moderação:
por Sygecom: Topico editado para colocar codigo dentro da TAG [ CODE ]

Re: Harbour + Visual LIB

Enviado: 22 Mai 2009 12:43
por sygecom
Olá Antonio,

Veja o exemplo nos link abaixo, eu tenho sistema até hoje usando VL+GTWVT+XHARBOUR sem problemas.
http://www.4shared.com/file/68584067/83 ... gtwvt.html
http://www.4shared.com/file/68300002/cc ... le_vl.html

Abaixo um lista de funções da GTWVT
http://www.4shared.com/file/68300238/49 ... cunho.html

Abaixo um exemplo de menus em GTWVW, sem uso da VL
http://www.4shared.com/file/68584176/ec ... gtwvw.html

Nota: Todos os exemplo foram compilados com a versão 1.0.0 do xHarbour, eu ainda não compilei com a ultima versão do xHarbour 1.2.0, mas muda pouca coisa pelo que ainda vendo, é apenas linkar uma LIB a mais e mudar as GTINFO() por HB_GTINFO() , inclusive aqui no forum já teve um colega com esses duvidas, é só da uma procurada nos topicos anteriores que você acha.

Re: Harbour + Visual LIB

Enviado: 22 Mai 2009 12:50
por asimoes
Olá Antônio,

Você pode também usar a solução que eu coloquei em Contribuições.

Usando a fonte visuallib.ttf

Fica igual a que é usada no clipper.

https://pctoledo.org/forum/viewto ... &t=9299er.

Use a lib gtwvg

Sugestão de uso:

Na sua aplicação principal.

Código: Selecionar todos

INIT FUNCTION AppSetup()

  REQUEST HB_LANG_PT
  REQUEST HB_CODEPAGE_PT850
  HB_LANGSELECT("PT")
  HB_SetCODEPAGE( "PT850" )
  REQUEST WVT_SETCODEPAGE
  WVT_SETCODEPAGE(255) //850

  SETMODE(25,80)

  SET TYPEAHEAD TO 0
  SET INTENSITY ON
  SET SCOREBOARD OFF
  SET DELETED ON
  SET SAFETY OFF
  SET DATE BRITISH
  SET ESCAPE ON
  SET CENTURY ON
  SET DELIMITERS TO
  SET CURSOR OFF
  SET EXCLUSIVE OFF
  SET WRAP ON
  SET EPOCH TO 1990

  Do Case
  Case HB_gtinfo(GTI_DESKTOPWIDTH) >= 1024
     Wvt_SetFont('VisualLib',28,11,FW_MEDIUM,2) //28,10,0  FW_NORMAL, FW_BOLD, FW_BLACK
  Case HB_gtinfo(GTI_DESKTOPWIDTH) >= 800
     Wvt_SetFont('VisualLib',21,11,FW_MEDIUM,2) //28,10,0  FW_NORMAL, FW_BOLD, FW_BLACK
  OtherWise
     Wvt_SetFont('VisualLib',15,7,FW_MEDIUM,2) //28,10,0  FW_NORMAL, FW_BOLD, FW_BLACK
  EndCase
  WvT_SetAltF4Close( .F. )
  WvT_SetPointer( 0, 100 )
  WvT_SetTITLE('Sistema X - Vs.1.0')
RETURN Nil
[]´s

Re: Harbour + Visual LIB

Enviado: 22 Mai 2009 17:31
por Antonio
Poxa gente, to até emocionado....

Não testei nada ainda, somente li o topico e ja apareceram duas respostas que algo me diz ter encontrado a solução.


Obrigado por enquanto.

[]
Antonio Carlos

Re: Harbour + Visual LIB

Enviado: 22 Mai 2009 23:18
por Antonio
Acabei de fazer funcionar com HARBOUR 1.1.0(Rev 11075)
Não instalei o fonte Visuallib.ttf, fui pelo tradicional
Realmente a desconfiguração de caracteres não existe mais (resolveu), contudo os botões, as bordas das msgbox, etc... estão diferentes do original... os botões estão demarcados por uma linha simpes e nas opções desses botções existem delimitadores, tipo <<Ok>>, <<Sair>>.

É por ai mesmo, fica dessa forma?

[]
Antonio Carlos

Re: Harbour + Visual LIB

Enviado: 23 Mai 2009 15:49
por janio
asimões,

Resolvi testar sua solução, porém não consegui fazer funcionar com resolução 800x600.

Tem alguma idéia do que pode estar acontecendo??

Re: Harbour + Visual LIB

Enviado: 23 Mai 2009 17:54
por Antonio
Aqui funciona tanto em 800 X 600, quanto em 1024 X 768 no tradicional, sem o TTF.

Re: Harbour + Visual LIB

Enviado: 23 Mai 2009 18:44
por janio
Sem TTF, blz, funciona aqui tambem.

Me refiro que funcionou na resolução 800x600 utilizando a fonte modificada pelo asimoes.

Essa fonte modifica pelo asimoes é justamente para tentar resolver o problema dos botões, das bordas das msgbox, que ficam com um alinha simples...

Re: Harbour + Visual LIB

Enviado: 24 Mai 2009 11:18
por Antonio
Bom, estranhamente aqui no meu caso, ao minimizar e apos maximizar o problema com os caracteres aparece, isso usando o recurso da fonte TTF.


Não usando a fonte TTF tudo bem, a não ser as bordas de linhas simples no objeto sem foco e linhas duplas no objeto com o focu.

Re: Harbour + Visual LIB

Enviado: 24 Mai 2009 15:12
por asimoes
Pessoal,

Isso é uma sintonia fina, que é feita na wvt_setfont, com resoluções maiores ou igual a 1024, fica perfeito, com 800 X 600 tem que ir testando,

Por exemplo no meu monitor samsung (LCD) com 800 X 600 a função wvt_setfont fica assim:

wvt_setfont('VisualLib',21,,1)

Com resoluções mais baixas tem fazer o ajuste fino.

Eu testei isso fazendo assim:

Código: Selecionar todos

for i:=10 to 30
   for j:=1 to 15
      wvt_setcont('visuallib',i,j,1)
      msgbox(str(i,2)+' '+str(i,2)) // para saber qual valor de i e j mais se adequa.
      inkey(0)
   next
next
Outra coisa, baixem o última atualização que eu fiz em contribuições. Fonte VisulLib

Não esqueçam de incluir o fonte vlib.prg no seu projeto, ele está modificado para usar a fonte visuallib.ttf

Removam a fonte que está instalada e reinstalem.

[]´s

Re: Harbour + Visual LIB

Enviado: 25 Mai 2009 12:00
por sygecom
Eu uso até hoje com GTWVT e uso em qualquer resolução sem problemas, estou usando como o exemplo do link que postei acima.
Olá asimoes,
Você pode automatizar essa instalação da sua FONTE, para isso pode usar as funções abaixo:

Código: Selecionar todos

Static Function AddFont()
Local nRet := AddFontResource("VISUAL-LIB.TTF")
If nRet == 0
   alert("A fonte VISUAL-LIB.TTF não foi adicionada ao sistema.")
Else
   alert("A fonte VISUAL-LIB.TTF foi adicionada ao sistema.")
EndIf
Return Nil

Static Function RemoveFont()
Local lRet := RemoveFontResource("VISUAL-LIB.TTF")
If lRet == .f.
   alert("Houve um erro na remoção da fonte VISUAL-LIB.TTF.","Aviso")
Else
   alert("A fonte VISUAL-LIB.TTF foi removida com sucesso.","Aviso")
EndIf
Return Nil
Nota: Tem que linkar a WHAT32.LIB

Re: Harbour + Visual LIB

Enviado: 25 Mai 2009 12:46
por Antonio
Alguma coisa não esta certa então, pelo menos comigo.

Pois, por exemplo:

Usando INIT FUNC ou chamando as configurações atraves de uma FUNÇÃO;

Código: Selecionar todos

 Init Function Inicio()
  REQUEST HB_LANG_PT
  REQUEST HB_CODEPAGE_PT850
  HB_LANGSELECT("PT")
  HB_SetCODEPAGE( "PT850" )
  REQUEST WVT_SETCODEPAGE
  
  Wvt_Core()
  Wvt_Utils()
 
  WvT_SetTITLE('Sistema X - Vs.1.0')
  Wvt_SETCODEPAGE(255) //850
  
  Set EventMask To 159

  SETMODE(25,80)
 

Aqui passa a ocorrer erro:

Código: Selecionar todos

Do Case
  Case  Hb_Gtinfo(GTI_DESKTOPWIDTH) >= 1024
apontando que GTI_DESKTOPWIDTH não existe.


Então chamo essas configurações logo no inicio do PRG e consigo trabalhar dentro dos seus metodos SYGECOM, ja com a fonte.TTF eu instalei ela e compilei o programa, nem testei quanto a resolução de video pois o problema com os caracteres, pelo menos aqui com a fonte.TTF não resolveu.

Então, devo estar pisando na bola em algum aspecto... mas a principio não faço ideia do que seja.

[]
Antonio Carlos

Re: Harbour + Visual LIB

Enviado: 25 Mai 2009 13:31
por sygecom
Tens que linkar o seguinte include no .PRG onde tem as chamadas HB_GTINFO()
#include "hbgtinfo.ch"

Re: Harbour + Visual LIB

Enviado: 25 Mai 2009 13:58
por Antonio
Exatamente, é o que eu faço.

Re: Harbour + Visual LIB

Enviado: 25 Mai 2009 14:08
por sygecom
Qual a versão do seu xharbour ?

Tente mudar para:

Código: Selecionar todos

Hb_Gtinfo(HB_GTI_DESKTOPWIDTH) >= 1024
Nota: Os exemplos dois link que postei foram testados e compilados com xharbour 1.0.0