Página 1 de 2
problema ao utilizar CHR(...)
Enviado: 30 Jul 2012 11:17
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
problema ao utilizar CHR(...)
Enviado: 30 Jul 2012 17:54
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
problema ao utilizar CHR(...)
Enviado: 30 Jul 2012 18:18
por alxsts
Olá!
Tente converter os caracteres antes de exibi-los, com a função
Exemplo:
problema ao utilizar CHR(...)
Enviado: 30 Jul 2012 18:49
por Amparo
ola amigos
alxsts escreveu:Olá!
Tente converter os caracteres antes de exibi-los, com a função
coloquei conforme indicado mas não surtiu efeito continua os quadradinhos
tentei colocar HB_OEMTOANSI( CHR(...) ) mas tambem nao adiantou.
abraços
amparo
problema ao utilizar CHR(...)
Enviado: 30 Jul 2012 19:37
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
problema ao utilizar CHR(...)
Enviado: 30 Jul 2012 20:55
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
problema ao utilizar CHR(...)
Enviado: 30 Jul 2012 22:27
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.
problema ao utilizar CHR(...)
Enviado: 30 Jul 2012 23:58
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
problema ao utilizar CHR(...)
Enviado: 31 Jul 2012 09:07
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.
problema ao utilizar CHR(...)
Enviado: 31 Jul 2012 09:56
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
problema ao utilizar CHR(...)
Enviado: 31 Jul 2012 12:40
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.
problema ao utilizar CHR(...)
Enviado: 31 Jul 2012 15:17
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...
problema ao utilizar CHR(...)
Enviado: 31 Jul 2012 23:00
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
problema ao utilizar CHR(...)
Enviado: 01 Ago 2012 09:09
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
problema ao utilizar CHR(...)
Enviado: 01 Ago 2012 09:25
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ç...