Request HB_CODEPAGE_PTISO
Request HB_CODEPAGE_PT850
HB_CDPSELECT("PTISO")
Não estava dando certo parei de tentar implementar a acentuação mas lendo recentemente um livro postado aqui no fórum INTRODUÇÃO A PROGRAMAÇÃO USANDO A LINGUAGEM HARBOUR VLADEMIRO LANDIM JUNIOR, fica aqui já meus parabéns pela iniciativa muito bom.
Resolvi retomar a acentuação de minhas aplicações com UTF8EX que foi recomendado pelo livro por ser uma tabela de caracteres mais usado no mundo e mais completa.
REQUEST HB_CODEPAGE_UTF8EX // Disponibiliza o suporte a UTF8
hb_cdpSelect("UTF8EX") // Seleciona o suporte a UTF8
Como os editores de texto trabalham basicamente com ansi os caracteres de box ou moldura não aparecem nos editores mas se não convertermos o padrão ansi no notepad++ as telas de moldura não aparecem corretamente no editor mas o aplicativo depois de compilado aparece corretamente. Usava o recurso alt e o número conforme tabela abaixo:
Página de caracteres sem seleção de tabela (ASCII)
Caracteres de Caixa (Box Characters)
https://www.itlnet.net/programming/prog ... 2e087.html
Usando o padrão utf8ex esses caracteres são substituídos por outros, as tela ficando com outro caracteres, então resolvi fazer um pequeno programa para exibir a tabela utf8ex para ver aonde foram parar os caracteres ascii das tabela acima, já ouvi falar que a utf8ex tem milhares de caracteres de todas língua mundiais. Veja um programa com 10000 caracteres utf8ex:
Código: Selecionar todos
Procedure Main()
REQUEST HB_CODEPAGE_UTF8EX // Disponibiliza o suporte a UTF8ex
hb_cdpSelect("UTF8EX") // Seleciona o suporte a UTF8
Clear
NumCar=1
NumCol=1
Do While NumCar<10000
Do While NumCol<10
?? Str(NumCar,4)+"-"+CHR(NumCar)+" "
NumCar:=NumCar+1
NumCol:=NumCol+1
EndDo
?
NumCol=1
EndDo
Return Percebi que dá para montar minhas antigas telas mesmo usando o utf8ex usando por exemplo:
Código: Selecionar todos
?? CHR(9556)+CHR(9552)+CHR(9552)+CHR(9559) // ?? CHR(201)+CHR(205)+CHR(205)+CHR(187)Mas dessa forma não funcionou, sai outros caracteres só deu certo assim:
Código: Selecionar todos
NumCar=9556 // = CHR(201)
?? CHR(NumCar)
NumCar=9552 // = CHR(205)
?? CHR(NumCar)
NumCar=9552 // = CHR(205)
?? CHR(NumCar)
NumCar=9559 // = CHR(187)
Alguém sabe porque o CHR não funcionou da forma anterior? Estava pensando em montar uma tabela tipo a ASCII.
Código: Selecionar todos
9556 9552 9559
+----------------+


