GTWVW - acentuação português - caracteres especiais.

Outras bibliotecas visuais e IDEs para Harbour/xHarbour (xHGTK/HbWxW/GtWvT/GtWvW/WvWtools.etc)

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVW - acentuação português - caracteres especiais.

Mensagem por JoséQuintas »

Vamos à prova:
Retorne o que estava antes, e altere isto em wvw_paint()

Código: Selecionar todos

FUNCTION WVW_Paint( nWinNum ) /* must be a public function */
//------------------ pra não dar erro - inicio
   IF ValType( s_aMiscObjList ) != "A"
      RETURN 0
   ENDIF
//-------------- pra não dar erro - fim
#if 0
 ldebug( ;
   "WVW_Paint:" + hb_eol() + ;
   "hWnd: " + hb_ntos( hWnd ) + hb_eol() + ;
   "nWinNum: " + hb_ntos( nWinNum ) )
#endif

 IF Len( s_amiscobjlist ) >= nWinNum + 1 // ESTA É A LINHA 2019

   AEval( s_amiscobjlist[ nWinNum + 1 ], {| e | Eval( e, nWinNum ) } )
 ENDIF
 wvwm_paint( nWinNum )
RETURN 0
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

GTWVW - acentuação português - caracteres especiais.

Mensagem por JoséQuintas »

Ou apenas comente as linhas referentes ao uso da variável, já que pode ter erro em outras partes dos fontes.
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

GTWVW - acentuação português - caracteres especiais.

Mensagem por JoséQuintas »

Mais outro teste:
O problema é codepage e acentuação no say/get?

Lembra do Tudo em um???
Igual está lá funciona!!!

Código: Selecionar todos

REQUEST HB_CODEPAGE_PTISO

PROCEDURE Main
   SetMode( 25, 80 )
   Set( _SET_CODEPAGE, "PTISO" )
   @ 2, 2 SAY "Teste do José pra acentuação"
   Inkey(0)
   RETURN

Código: Selecionar todos

hbmk2 test gtwvw.hbc
testgtwvw.png
Agora que reparei:
PT850.... parece ser português de Portugal.

Código: Selecionar todos

REQUEST HB_CODEPAGE_PT850
REQUEST HB_LANG_PT

PROCEDURE Main
   SetMode( 25, 80 )
   hb_SetCodePage( "PT850" )
   hb_LangSelect( "PT" )
   @ 2, 2 SAY "Teste do José pra acentuação"
   Inkey(0)
   RETURN
gtwvwpt.png

Apesar de eu não ter notado isso antes, só lembrando meu post:
Precisa confirmar, mas provavelmente GTWVW aceita PTISO.
Se o fonte for digitado diretamente em PTISO, pronto tudo resolvido.
É abrir no bloco de notas e ver se lá as letras estão corretas.
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

GTWVW - acentuação português - caracteres especiais.

Mensagem por JoséQuintas »

Só não esqueça da wvw_paint(), que não tem nada a ver com o comando de codepage, e não deveria gerar mensagem de erro, e muito menos fazer diferença sobre em qual ordem está codepage.
Se lá tem erro, vai ter dar erro a qualquer hora em qualquer lugar.
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

GTWVW - acentuação português - caracteres especiais.

Mensagem por JoséQuintas »

Correção: 850 não é apenas de Portugal, mas de vários países da Europa.

harbour\doc\en\lang.txt

Código: Selecionar todos

      French                850            FR
      German                850            DE
      Italian               850            IT850
      Portuguese            850            PT850
      Portuguese            ISO-8859-1     PTISO
      Spanish               850            ES
      Swedish               850            SV850
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

GTWVW - acentuação português - caracteres especiais.

Mensagem por JoséQuintas »

Apenas suposição:

Talvez ao trocar a codepage, o Harbour acabe forçando uma "repintada" da tela, e por isso dá erro em wvw_paint()
Isso explicaria fazer diferença da linha aonde está codepage.
Mesmo assim, não significa que codepage cause o erro, mas sim que faça o erro aparecer mais rápido.
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

GTWVW - acentuação português - caracteres especiais.

Mensagem por JoséQuintas »

Aqui o fonte demo.prg alterado com codepage.
Nenhum erro, mas a variável que mencionou está lá no fonte, sendo criada.

Detalhe importante: wvw_paint() no fonte principal. e a criação da variável também no fonte principal, no mesmo fonte de Main().
gtwvw.png
Seu fonte que dá erro está assim ou diferente?
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/
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

GTWVW - acentuação português - caracteres especiais.

Mensagem por microvolution »

ok... vamos responder a cada postagem do professor JQuintas.
JoséQuintas escreveu:Vamos à prova:
Retorne o que estava antes, e altere isto em wvw_paint()
voltei o CODEPAGE para uma linha antes do MAIN e alterei a função WVW_PAINT e gerou novamente o mesmo erro:
Data:02/03/2016 Horario: 19:07:58
Erro BASE/1003 Variable does not exist: S_AMISCOBJLIST

Called from WVW_PAINT(2023)
Called from WAPI_MESSAGEBOX(0)
Called from LBOXMESSAGE(2304)
Called from ABERTURA(3108)
Called from MAIN(535)
JoséQuintas escreveu:Expandir visualizacao
Ver codigo
1 REQUEST HB_CODEPAGE_PTISO
2
3 PROCEDURE Main
4 SetMode( 25, 80 )
5 Set( _SET_CODEPAGE, "PTISO" )
Coloquei as linhas acima, na verdade 2 apenas das linhas acima:
- REQUEST HB_CODEPAGE_PTISO antes do MAIN e
- SET(_SET_CODEPAGE,"PTISO") após o início do MAIN e depois das variáveis LOCALs.
Infelizmente o mesmo erro ocorreu...
Data:02/03/2016 Horario: 19:17:49
Erro BASE/1003 Variable does not exist: S_AMISCOBJLIST

Called from WVW_PAINT(2021)
Called from WAPI_MESSAGEBOX(0)
Called from LBOXMESSAGE(2302)
Called from ABERTURA(3106)
Called from MAIN(532)
Bom, pelo que "pouco entendo" o erro percorre um caminho e não tem nada a ver com sua continuação...
vamos às linhas. Primeiro, vamos ao início de tudo (linha 532):

Código: Selecionar todos

ABERTURA() // chamada à função de abertura de arquivos necessários dbfntx (o início do problema - pelo menos na lógica deveria ser assim e não o é)... prossigamos
3106 - dentro da função ABERTURA tem uma chamada à função boxmessage, contendo o seguinte conteúdo:

Código: Selecionar todos

     lboxmessage ('Atenção! Para continuar com este aplicativo, será necessário fechar o SiCCA ou quaisquer de seus Módulos Externos que estiverem aberto. Feche-o(s) antes de continuar... Este aplicativo precisa abrir arquivos em MODO EXCLUISVO. Após ter realizado esta verificação pressione [ENTER] ou clique em [OK] para prosseguir...')
a linha 3106, obviamente chama a linha 2302 que contém o seguinte dentro da função criada por nós para usar a API do windows. vejam:

Código: Selecionar todos

         wapi_MessageBox( wvw_GetWindowHandle(), cMsg , cTitle , WIN_MB_OK + WIN_MB_ICONINFORMATION + WIN_MB_SYSTEMMODAL )
Bom, até aqui o erro está na lógica que aprendi, percorrendo por onde ocorreu... mas, daqui pra frente, ou seja:
Called from WVW_PAINT(2021)
Called from WAPI_MESSAGEBOX(0)
ao chamar a WAPI_... ele já pula o raciocínio pra outra coisa completamente diferente... então quanto mais eu tento entender, gasto tempo energia e din din (aliás não tenho e só gasto) e não entendo nada, percebo que fico horas e horas numa coisa "tão boba" mas, sem lógica pra mim...
bom, ou mau, a linha 2021 é a que trata sobre a tal variável... então não faz sentido algum sequer... e só acontece com o SET_CODE_PAGE, inclusive o seu que acabei de colocar no início do main e depois, bem próximo ao final...
ah" a linha 2021, só pra relembrar:

Código: Selecionar todos

   IF ValType( s_aMiscObjList ) != "A"                // jquintas pctoledo 2/3/16w
ou seja, até a sua linha também está errada... se me permite. Se é pra descobrir se ela existe colocaria assim então:

Código: Selecionar todos

   hb_default(@s_aMiscObjList,"")
   IF empty( s_aMiscObjList )
Mas, mesmo assim, o erro, persiste...
volto a repetir... se não existir essa linha:

Código: Selecionar todos

   Set( _SET_CODEPAGE, "PTISO" )
não importa se é PTISO, PT, PMDB, PSDB, PV etc.... :)) só pra descontrair...
a "corrupção" é a mesma :D :D :D
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

GTWVW - acentuação português - caracteres especiais.

Mensagem por microvolution »

JoséQuintas escreveu:Se lá tem erro, vai ter dar erro a qualquer hora em qualquer lugar.
mas não dá erro... só após colocar essa "B****" de CODEPAGE...
JoséQuintas escreveu: Correção: 850 não é apenas de Portugal, mas de vários países da Europa.
vivendo e aprendendo... estou sempre em construção.
JoséQuintas escreveu:Apenas suposição:
estamos quase no "supositório" de tanta "M****" que não sai...
JoséQuintas escreveu:Talvez ao trocar a codepage, o Harbour acabe forçando uma "repintada" da tela, e por isso dá erro em wvw_paint()
é isso q tenho falado desde o início.
JoséQuintas escreveu:Seu fonte que dá erro está assim ou diferente?
já coloquei em tudo quanto é lugar... só funciona sem erro se colocar no final do MAIN, como já postei anteriormente.
JoséQuintas escreveu:Detalhe importante: wvw_paint() no fonte principal. e a criação da variável também no fonte principal, no mesmo fonte de Main().
está do mesmo jeito...
inclusive, só pra relembrar, ela está antes do MAIN sendo criada e se colocar o codepage gera o erro
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVW - acentuação português - caracteres especiais.

Mensagem por JoséQuintas »

Muita gente vai discordar....
Mas tem horas que o hbmk2 é uma merd....

Já aconteceu comigo várias vezes de alterar o fonte, e o hbmk2 não compilar o fonte alterado.

Por isso indiquei usar o rebuild.

Mas aqui eu apago é tudo que é temporário de uma vez, nem deixo essa parte pro hbmk2.

Eu uso -workdir=c:\temp

e apago todo c:\temp de vez em quando.

Então tente mais essa: forçar recompilar tudo, pra ter certeza de que o fonte que está no EXE é o mesmo que está na pasta.
hbmk2 seuprojeto.hbp -rebuild


E cuidado se for fazer igual a mim:
Ao colocar -workdir=c:\temp, se colocar em todos os projetos, vai estar misturando arquivos de projetos diferentes em c:\temp
Ao trocar de projeto tem que lembrar de apagar c:\temp


No momento não me vém mais nada à cabeça.
A principal é a seguinte: se o problema persistir, abandone a GTWVW, porque está gerando erro aonde não deve.

Quanto ao teste que fiz:

IF ValType( variavel ) != "A"

Se a variável for array, o retorno é "A"


Ou mais um teste:
Comente as linhas dentro de wvw_paint(), ou até a rotina inteira.
Não vai atualizar tela, mas tudo bem, é só pra teste.

Se o erro não sumir, sinal de que não está compilando o fonte alterado, ou algum outro problema.
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

GTWVW - acentuação português - caracteres especiais.

Mensagem por JoséQuintas »

Código: Selecionar todos

hb_default(@s_aMiscObjList,"")
 IF empty( s_aMiscObjList )
ERRADO!!!!!!
A variável não é string.


Putz....
Pensando bem...
O problema pode ser outro, vou fazer um teste aqui.
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

GTWVW - acentuação português - caracteres especiais.

Mensagem por JoséQuintas »

Pensei nisto, mas provavelmente a mensagem seria diferente.
o elemento sem conteúdo, e não a falta do array.

Código: Selecionar todos

PROCEDURE Main
   SetMode( 25, 80 )
   CLS
   oArray := Array(5)
   ? oArray[ 1 ]
   Inkey(0)
   RETURN
wvw_paint() usa o array pra "desenhar".
Não vi se todos os elementos do array possuem conteúdo.

Ou mais um teste:
Antes do setcodepage, pra forçar atualização:

Código: Selecionar todos

s_amiscobjlist := {}
inkey(1)
Se eu não resolvesse um problema desse tipo com uma LIB, eu abandonaria a LIB.

Tem como isolar a parte que gera erro pra eu compilar aqui?
Vai que é outro bug no seu Harbour.... rs
Nunca se sabe.... só acredito vendo.
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

GTWVW - acentuação português - caracteres especiais.

Mensagem por JoséQuintas »

Mais outra coisa:

Tudo bem que definiu errado no Harbour, a codepage 850.

Mas no editor de texto definiu a codepage 860.

De qualquer jeito, o fonte usava codepage diferente do programa.

Acredito que no editor de texto, pra PTISO, será a codepage 1252, mas não tenho certeza.
Por falta de opção, uso essa pra PDF e até agora tudo bem.

Eu nem sei qual é que eu uso, porque o editor de texto que uso já pega a default do Windows.
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

GTWVW - acentuação português - caracteres especiais.

Mensagem por JoséQuintas »

Só pra constar:
pnotepad.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/
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

GTWVW - acentuação português - caracteres especiais.

Mensagem por microvolution »

Não sei o q acontece com esse harbour ou suas libs... só sei q penso q estou aprendendo e na verdade estou é me confundindo e perdendo muito tempo com coisas tão banais... no clipper, ou era ou não era.
Não tinha essas complicações q aqui acontecem...
Quanto ao -rubuild, por coincidência ou não, foi nesse pequeno aplicativo/teste que apliquei-o da outra vez que o nobre professor me ensinou e está assim até hoje, ou seja, toda compilação tem o -rebuild.
Bom, fiz o seguinte:
1 - coloquei o request uma linha antes do func MAIN:

Código: Selecionar todos

REQUEST HB_CODEPAGE_PT850     //    trabalhar com vários SOs e charsets pt_br
2 - coloquei o hb_setcodepage, depois de todos os objetos wvw_... serem criados ou sei lá o que, não entendi nada até agora mesmo... enfim, após o CLS e antes do primeiro @say (que não tinha acentuação e já funcionava):

Código: Selecionar todos

   HB_SetCodePage( "PT850" )                      // seleciona a página acima.							// 30/4/15w amigo Ivo/jquintas da internet
3 - meu Notepad++ está na configuração OEM:860 portuguese, pois assim, já aparece acentuação correta nos outros aplicativos/testes sem necessidade de CODEPAGE (da pqp=ponte q caiu rsrs)
4 - as linhas do @say q recebem acentuação, estão assim (para teste):
@ 11 - nTop, nColGet - nLeft + 04 SAY win_OEMTOANSI("< Período Inicial para Exclusão de PRESTAÇÕES Baixadas >")
@ 14 - nTop, nColGet - nLeft + 04 SAY "< Período Final para Exclusão de PRESTAÇÕES Baixadas >"
5 - vejam como essas linhas estão agora, na prática:
16-0302 - codificação2.png
Vou trocar o WIN_OEMTOANSI para WIN_ANSITOOEM pra ver q resultado dá...
enquanto isso, na bate-Harberna... vou fazer outros testes noutras coisas q estão pendentes também... e sem solução... até o presente momento
:-o :-O
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Responder