Clipper On Line • Ver Tópico - GTWVW - acentuação português - caracteres especiais.

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

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

Moderador: Moderadores

 

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

Mensagempor JoséQuintas » 02 Mar 2016 17:16

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

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

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

Mensagempor JoséQuintas » 02 Mar 2016 17:20

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

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

Mensagempor JoséQuintas » 02 Mar 2016 17:43

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

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

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


hbmk2 test gtwvw.hbc


testgtwvw.png


Agora que reparei:
PT850.... parece ser português de Portugal.

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

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

Mensagempor JoséQuintas » 02 Mar 2016 18:03

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

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

Mensagempor JoséQuintas » 02 Mar 2016 18:16

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

harbour\doc\en\lang.txt

      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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

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

Mensagempor JoséQuintas » 02 Mar 2016 18:49

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

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

Mensagempor JoséQuintas » 02 Mar 2016 19:06

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

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

Mensagempor microvolution » 02 Mar 2016 19:41

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):
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:
     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:
         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:
   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:
   hb_default(@s_aMiscObjList,"")
   IF empty( s_aMiscObjList )

Mas, mesmo assim, o erro, persiste...
volto a repetir... se não existir essa linha:
   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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

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

Mensagempor microvolution » 02 Mar 2016 19:50

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!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

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

Mensagempor JoséQuintas » 02 Mar 2016 20:26

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

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

Mensagempor JoséQuintas » 02 Mar 2016 20:33

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

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

Mensagempor JoséQuintas » 02 Mar 2016 20:39

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

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:

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

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

Mensagempor JoséQuintas » 02 Mar 2016 20:56

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

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

Mensagempor JoséQuintas » 02 Mar 2016 21:02

Só pra constar:

pnotepad.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

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

Mensagempor microvolution » 02 Mar 2016 23:25

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:
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):
   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!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

Anterior Próximo



Retornar para Outras Bibliotecas Visuais e IDEs

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro