problema ao utilizar CHR(...)

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

problema ao utilizar CHR(...)

Mensagem por Amparo »

ola amigos

nao estou conseguindo utilizar por exemplo o CHR(4), CHR(16), CHR(24), CHR(25) em meus aplicativos, converti de clipper 5.3 para harbour ( que vem junto com a minigui ).

utilizo o CHR(4) para mostrar que a coluna do TSBROWSE esta marcada e o CHR(16) para mostrar qual registro esta marcado, o CHR(24) mostro que a coluna esta em ordem DECRESCENTE e o CHR(25) em ordem CRESCENTE entao tenho a seguinte apresentaçao:

CHR(4) = ♦
CHR(16) = ►
CHR(24) = ↑
CHR(25) = ↓

so que compilando em Harbour todos os CHR(...) mostram um quadradinho [] e ate o COMBOBOX ao invez de aparecer o sinal ▼ para abrir a caixa de seleção aparece o danado do quadradinho.

estou anexando um arquivo com a imagens das telas um em clipper 5.3 (certinho) e o outro em Harbou( errado).

no main() eu coloquei as seguinte linhas, ja tentei deixar só HB_CODEPAGE_PT850 e depois só o HB_CODEPAGE_PTISO coloquei os dois e nada. estou compilando meu aplicativo com o HBMK2 com as instruçoes no arquivo .HBP

-lhbct
-inc

-oSISEMP.EXE

Código: Selecionar todos

#include "SISTEMA.CH"
#include "FILEIO.CH"
#include "STATION.CH"

#pragma BEGINDUMP
#include "hbapi.h"
#include "windows.h"
HB_FUNC( TIRA_X )
{ 
HMENU MenuH = GetSystemMenu(GetForegroundWindow(),FALSE);
 EnableMenuItem(MenuH,SC_CLOSE,MF_GRAYED) ;
DeleteMenu(MenuH,SC_CLOSE,MF_BYCOMMAND);
}
#pragma ENDDUMP

REQUEST DESCEND
REQUEST DBFCDX
REQUEST HB_CODEPAGE_PT850
REQUEST HB_CODEPAGE_PTISO

*--------------------------------------------------------------------------------------------------
PROCEDURE Main( )
...
...
Hb_LangSelect("PT")
Hb_CdpSelect("PT850")  // Ou "PTISO" dependendo da config do SO
Hb_CdpSelect("PTISO")  // Ou "PTISO" dependendo da config do SO
Anexos
erro caractere chr.rar
(53.26 KiB) Baixado 120 vezes
Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

problema ao utilizar CHR(...)

Mensagem por Amparo »

ola pessoal


meu problema é bem maior que pensei pois utilizo CHR(...) em varios relatorios e com certeza vai me prejudicar e muito.

por favor, se alguem tiver alguma ideia de como resolver ou contornar meu problema fico grato.

abraços

Amparo
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

problema ao utilizar CHR(...)

Mensagem por alxsts »

Olá!

Tente converter os caracteres antes de exibi-los, com a função

Código: Selecionar todos

HB_ANSITOOEM( <cString> ) --> cDosString
Exemplo:

Código: Selecionar todos

@nRow,nCol SAY HB_ANSITOOEM( Chr(24) )
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

problema ao utilizar CHR(...)

Mensagem por Amparo »

ola amigos

alxsts escreveu:Olá!

Tente converter os caracteres antes de exibi-los, com a função

Código: Selecionar todos

HB_ANSITOOEM( <cString> ) --> cDosString
coloquei conforme indicado mas não surtiu efeito continua os quadradinhos

tentei colocar HB_OEMTOANSI( CHR(...) ) mas tambem nao adiantou.

abraços
amparo
Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

problema ao utilizar CHR(...)

Mensagem por Amparo »

ola amigos

vou tentar explicar o que esta ocorrendo, nao sei por que mas so funciona o CHR(...) a partir de CHR(33) se eu usar o CHR(32) para baixo vai aparecer um quadradinho no lugar, se for CHR(33) ate CHR(254) funciona normal.

para elaborar meus prgs utilizo o Editplus Text Editor V2.11 (1052) pensei que o problema fosse esse editor pois a tabela de caracteres dele mostra CHR(33) ate CHR(254) mas eu uso este mesmo editor para montar meus fontes e compilar em clipper 5.3 e nao da esse erro e tambem editei o prg com o The Norton Editor Version 2.0 -- 11/28/90 da Symantec Corporation, aquele editor que usavamos quando nem existia o RUINDOWS e tambem esta dando o mesmo problema.

o que pode ser, alguem tem algum editor que possa me enviar para eu fazer um teste.

abraços

amparo
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

problema ao utilizar CHR(...)

Mensagem por Jairo Maia »

Olá Amparo,

Se sua dúvida é o editor (embora não creio que seja), escreva com ele este exemplo e veja o que acontece.

Aqui este exemplo retorna exatamente o que você quer:

Código: Selecionar todos

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850

Function Main()
 HB_SETCODEPAGE('PT850')
 HB_LANGSELECT('PT')

 Clear Screen

 @ 2,2 say HB_AnsiToOem( Chr( 4 ) )
 @ 3,2 say HB_AnsiToOem( Chr( 16 ) )
 @ 4,2 say HB_AnsiToOem( Chr( 24 ) )
 @ 5,2 say HB_AnsiToOem( Chr( 25 ) )
 Inkey( 0 )

Return Nil
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

problema ao utilizar CHR(...)

Mensagem por JoséQuintas »

Amparo,
Está misturando um pouco, e pode complicar.
Para APIs do Windows, os caracteres tem que ser da tabela do Windows.
Pra resultados em tela, depende do que usa, pode ser do Windows ou do Harbour.
E pra relatórios, vão ser os caracteres da impressora.
Vai ter que usar algumas conversões conforme onde for apresentar os caracteres.
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/
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

problema ao utilizar CHR(...)

Mensagem por Adalberto »

Jairo, boa noite.

Testei o exemplo que você compartilhou conosco, com tanta boa vontade, funciona muito bem em tele cheia; em janela fica o quadradinho. Sabe como trocar isso?

Muito agradecido por seus valiosos aportes, Deus abençoe você.

[] Adalberto
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

problema ao utilizar CHR(...)

Mensagem por Jairo Maia »

Olá Adalberto, Bom dia.

Compilando com Harbour 3.0 + WVT o exemplo abaixo, em tela cheia ou janela tenho o mesmo resultado. Observe que usei a GT_WVT, adapte o exemplo para o drive GT que você usa, o resultado será o mesmo:

Código: Selecionar todos

#include "hbgtinfo.ch"

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
REQUEST HB_GT_WVT_DEFAULT

Function Main()
 HB_SETCODEPAGE('PT850')
 HB_LANGSELECT('PT')
 HB_GtInfo( HB_GTI_FONTNAME, "Lucida Console" )

 
 cChr1 := HB_AnsiToOem( Chr( 4 ) )
 cChr2 := HB_AnsiToOem( Chr( 16 ) )
 cChr3 := HB_AnsiToOem( Chr( 24 ) )
 cChr4 := HB_AnsiToOem( Chr( 25 ) )
 cChr5 := Chr( 192 ) + HB_AnsiToOem( Chr( 16 ) )
 cChr6 := HB_AnsiToOem( Chr( 17 ) ) + Chr( 217 )

 @ 10, 25 Say cChr1
 @ 10, 30 Say cChr2
 @ 10, 35 Say cChr3
 @ 10, 40 Say cChr4
 @ 10, 45 Say cChr5
 @ 10, 50 Say cChr6

 DispOutAt( 12, 25, cChr1, "G+/N" )
 DispOutAt( 12, 30, cChr2, "G+/N" )
 DispOutAt( 12, 35, cChr3, "G+/N" )
 DispOutAt( 12, 40, cChr4, "G+/N" )
 DispOutAt( 12, 45, cChr5, "G+/N" )
 DispOutAt( 12, 50, cChr6, "G+/N" )

 Inkey( 0 )

Return Nil
PS: Para que você possa ver o resultado obtido, em anexo a imagem. A rigor, não consegui simular a situação que mostra os quadrinhos, então não tenho idéia da razão disso.
Anexos
chr.zip
(17.01 KiB) Baixado 102 vezes
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

problema ao utilizar CHR(...)

Mensagem por Adalberto »

Jairo, bom dia de Deus para você.

Agradecido com sua colaboração, mais sou novato em os 32 bits, estou trabalhando ¿ou batalhando?, com xHb build 0.99.70 intl (simplex) e apoiado com BrMake, com estas ferramentas não consegui tirar o quadradinho que molesta a Amparo e a mi também. Se não é muita moléstia, poderias ajudar-me com isto?

Eis minha suplica a nosso Deus que abençoe você e seus queridos.

[] Adalberto
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

problema ao utilizar CHR(...)

Mensagem por Jairo Maia »

Olá Adalberto,

Tente usar assim no seu sistema, e veja se muda algo:

Código: Selecionar todos

@ nLinha, nColuna Say HexToStr( "04" )  // = Chr( 4 )
@ nLinha, nColuna Say HexToStr( "10" )  // = Chr( 16 )
@ nLinha, nColuna Say HexToStr( "18" )  // = Chr( 24 )
@ nLinha, nColuna Say HexToStr( "19" )  // = Chr( 25 )
@ nLinha, nColuna Say Chr( 192 ) + HexToStr( "10" )  // = Chr( 192 ) + Chr( 16 )
@ nLinha, nColuna Say HexToStr( "11" ) + Chr( 217 )  // = Chr( 17 ) + Chr( 217 )
Esta função retorna um código Hex em seu respectivo caracter ASCII. Veja se funciona.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

problema ao utilizar CHR(...)

Mensagem por Imatech »

Solução utilizando Harbour 3.2

Código: Selecionar todos


hb_SetTermCP( hb_cdpTerm() )
Set( _SET_OSCODEPAGE, hb_cdpOS() )

 

Sendo novato, recomendo que inicie usando Harbour e não xH...

Agradecido com sua colaboração, mais sou novato em os 32 bits...
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

problema ao utilizar CHR(...)

Mensagem por Adalberto »

Jairo, boa noite,

Já testei o segundo exemplo que com tanta amabilidade você postou, e infelizmente para mi, o resultado e o mesmo quadradinho danado de sempre. Se conhece alguma outra dica por favor lembre que estarei aguardando. Muito obrigado.

Amigo Imatech,

Quando comecei com os 32 bits foi com xHb, e já tenho migrados um sistema de contabilidade, uno de inventários , de contas por cobrar e contas por pagar. Já desarrolhe um sistema de Manejo Florestal (Madeira), com MiniGui (Agradeço a colaboração do Filatov e dos outros gurus que tem para nos, permanente atualização de esta libraria), então acredito que nesta hora o melhor para mim e continuar com estas ferramentas, e com a grande ajuda de vocês ir melhorando meu aprendizado (graças por as aulas magistrais de todos os amigos e amigas deste foro).

Por todo o citado acima, eu elevo minhas orações a nosso bondoso Deus pedindo para cada integrante deste foro chuvas abundantes de bendições e graça.

[] Adalberto
Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

problema ao utilizar CHR(...)

Mensagem por Amparo »

ola pessoal

obrigado a todos por responder.

fiz o mesmo teste que o Jairo mencionou e esta aparecendo o danado do quadradinho, troquei o
CHR(4), CHR(16), CHR(17) , CHR(24) e CHR(25)
POR
CHR(33), CHR(34), CHR(35), CHR(36), CHR(37) e CHR(38)
ai funcionou foi como coloquei anteriormente so funciona a partir do CHR(33)

Imatech, nao consegui usar os codigos que voce postou da o erro abaixo, voce poderia mostra como ficaria no exemplo feito pelo colega Jairo?

Código: Selecionar todos

Error: Unresolved external '_HB_FUN_HB_CDPTERM' referenced from C:\FONTES\TESTES
\.HBMK\WIN\BCC\TESTE1.OBJ
Error: Unresolved external '_HB_FUN_HB_CDPOS' referenced from C:\FONTES\TESTES\.
HBMK\WIN\BCC\TESTE1.OBJ
abraços

Amparo
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

problema ao utilizar CHR(...)

Mensagem por Imatech »

Olá Amparo !


Se estiver usando Harbour 3.2 (SVN) vai funcionar perfeitamente...

Podendo Inclusive especificar "CP437" que é a tabela de caracteres default do Clipper


Lista com todas as funções:
http://www.elektrosoft.it/tutorials/Har ... s-list.htm



Abç...
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Responder