saveScreen e restScreen restaurando com encode errado
Moderador: Moderadores
saveScreen e restScreen restaurando com encode errado
Pessoal, estou usando o codepage
Set( _SET_CODEPAGE, "PTISO" )
Faco o desenho da minha tela normalemente com o caracter chr (196), porem ao salvar e restaurar a tela ela fica baguncada com o caracter "?" no lugar de 196.
Consultando o google, foi citado uma breve resposta das funcoes hb_savescreen e hb_restscreen que trabalha com unicode.
Fui tentar usa-la e ao compilar obtive undefined func.
Alguem saberia me dizer qual a lib destas funcoes?
Nota: ja estou incluindo a xhb.hbc
Obrigado!
rgds,
Set( _SET_CODEPAGE, "PTISO" )
Faco o desenho da minha tela normalemente com o caracter chr (196), porem ao salvar e restaurar a tela ela fica baguncada com o caracter "?" no lugar de 196.
Consultando o google, foi citado uma breve resposta das funcoes hb_savescreen e hb_restscreen que trabalha com unicode.
Fui tentar usa-la e ao compilar obtive undefined func.
Alguem saberia me dizer qual a lib destas funcoes?
Nota: ja estou incluindo a xhb.hbc
Obrigado!
rgds,
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
saveScreen e restScreen restaurando com encode errado
Código: Selecionar todos
hb_gtInfo( HB_GTI_COMPATBUFFER, .F. )
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/
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/
saveScreen e restScreen restaurando com encode errado
Oi jose, agora funcionou! Porem tem uma parte da tela que faço sombra que modifico diretamente e justo nesta parte passou a dar problema de "?" sendo que antes nao ocorria. Vou deixar o fonte abaixo para voce dar uma olhada, ok?
func ShadowMenu (Y, X, Y1, X1)
local nColorFore := 1, nColorBack := 2 // indices da palette (SetColor ('1/2')) Harbour (antigo clipper)
local nByteColor := (nColorFore - 1) + ((nColorBack - 1) * 16)
RestScreen (Y1+1,X,Y1+1,X1+1, Transform (SaveScreen (Y1+1,X,Y1+1,X1+1), ;
REPLICATE ('X' + CHR (nByteColor), X1 - X + 2)))
RestScreen (Y+1,X1+1,Y1+1,X1+1, Transform (SaveScreen (Y+1,X1+1,Y1+1,X1+1), ;
REPLICATE ('X' + CHR (nByteColor), Y1 - Y + 1)))
RestScreen (Y,X-1,Y1+1,X-1, Transform (SaveScreen (Y,X-1,Y1+1,X-1), ;
REPLICATE ('X' + CHR (nByteColor), Y1 - Y + 2)))
return nil
Outra duvida o que faz exatamente esta funcao? Ela deixa de ser compativel com o clipper?
rgds,
func ShadowMenu (Y, X, Y1, X1)
local nColorFore := 1, nColorBack := 2 // indices da palette (SetColor ('1/2')) Harbour (antigo clipper)
local nByteColor := (nColorFore - 1) + ((nColorBack - 1) * 16)
RestScreen (Y1+1,X,Y1+1,X1+1, Transform (SaveScreen (Y1+1,X,Y1+1,X1+1), ;
REPLICATE ('X' + CHR (nByteColor), X1 - X + 2)))
RestScreen (Y+1,X1+1,Y1+1,X1+1, Transform (SaveScreen (Y+1,X1+1,Y1+1,X1+1), ;
REPLICATE ('X' + CHR (nByteColor), Y1 - Y + 1)))
RestScreen (Y,X-1,Y1+1,X-1, Transform (SaveScreen (Y,X-1,Y1+1,X-1), ;
REPLICATE ('X' + CHR (nByteColor), Y1 - Y + 2)))
return nil
Outra duvida o que faz exatamente esta funcao? Ela deixa de ser compativel com o clipper?
rgds,
saveScreen e restScreen restaurando com encode errado
Fazendo um debug, verifiquei que o savescreen com o parametro "hb_gtInfo( HB_GTI_COMPATBUFFER, .F. )" retorna uma string diferente.
Onde ao dar um dispout "? tela" aparece " e'dados da string'" ou seja, aparece a letra "e" ao lado de fora da string indicando ela estar em outro formato. Fui testa-la usando a hb_StrIsUTF8 (tela) e retornou .f., indicando nao se tratar de uma utf8. Alguem saberia me dizer do que se trata o prefixo "e" antes da string? Seria uma Oem? Se for, existe pouquissimas funcoes que tratam dela.
Onde ao dar um dispout "? tela" aparece " e'dados da string'" ou seja, aparece a letra "e" ao lado de fora da string indicando ela estar em outro formato. Fui testa-la usando a hb_StrIsUTF8 (tela) e retornou .f., indicando nao se tratar de uma utf8. Alguem saberia me dizer do que se trata o prefixo "e" antes da string? Seria uma Oem? Se for, existe pouquissimas funcoes que tratam dela.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
saveScreen e restScreen restaurando com encode errado
Sim.lwinter escreveu:Outra duvida o que faz exatamente esta funcao? Ela deixa de ser compativel com o clipper?
E o savescreen() do Clipper é em codepage US.
O Harbour tem função pra sombra, mas não uso, não sei dizer qual é, se não me engano está na hbct.
Quanto a UTF8, é pior do que parece.
Existem funções próprias pra UTF8, e não serve usar Substr(), At(), Len(), etc.
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/
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/
saveScreen e restScreen restaurando com encode errado
Oi Jose!
Obrigado pela dica. Pesquiser com hbmk2 -find shadow e encontrei a hb_shadow.
Encontrei tambem um post do Pctoledo que indicava como utilizar esta funcao em viewtopic.php?f=4&t=19589
Agora a minha rotina especifica de sombra ficou:
func ShadowMenu (Y, X, Y1, X1)
local nColorFore := 1, nColorBack := 2 // indices da palette (SetColor ('1/2')) Harbour (antigo clipper)
local nByteColor := (nColorFore - 1) + ((nColorBack - 1) * 16)
hb_shadow (Y, X, Y1, X1 - 1, nByteColor)
hb_shadow (Y - 1, X - 2, Y1, X - 2, nByteColor)
hb_shadow (Y1, X - 2, Y1, X1 - 2, nByteColor)
return nil
Ficou ate mais simples do que antes!
Muito agradecido!!!!!!
Obrigado pela dica. Pesquiser com hbmk2 -find shadow e encontrei a hb_shadow.
Encontrei tambem um post do Pctoledo que indicava como utilizar esta funcao em viewtopic.php?f=4&t=19589
Agora a minha rotina especifica de sombra ficou:
func ShadowMenu (Y, X, Y1, X1)
local nColorFore := 1, nColorBack := 2 // indices da palette (SetColor ('1/2')) Harbour (antigo clipper)
local nByteColor := (nColorFore - 1) + ((nColorBack - 1) * 16)
hb_shadow (Y, X, Y1, X1 - 1, nByteColor)
hb_shadow (Y - 1, X - 2, Y1, X - 2, nByteColor)
hb_shadow (Y1, X - 2, Y1, X1 - 2, nByteColor)
return nil
Ficou ate mais simples do que antes!
Muito agradecido!!!!!!
saveScreen e restScreen restaurando com encode errado
Aproveitando este mesmo topico, estou com problema de encode com a funcao Chr.
Aparece caracteres estranhos hora com um "quadradinho" hora com "?". Agora a funcao restscreen e savescreen estao funcionando com aquele comando que o Jose envisou. Porem o chr nao esta.
Alguem poderia saber porque?
Aparece caracteres estranhos hora com um "quadradinho" hora com "?". Agora a funcao restscreen e savescreen estao funcionando com aquele comando que o Jose envisou. Porem o chr nao esta.
Alguem poderia saber porque?
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
saveScreen e restScreen restaurando com encode errado
A tabela ASCII para PTISO é essa.lwinter escreveu:Porem o chr nao esta.Alguem poderia saber porque?
O que está procurando é da codepage US, e não existe na PTISO.
Acho que a alternativa é fazer igual o Harbour faz na @ TO, ou @ BOX.
É tipo o Harbour trabalhar com algo parecido com UTF8, que representa qualquer caractere, mas ele não estar disponível no uso normal.
Então.. ele tem a possibilidade, mas não nos comandos normais.
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/
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/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
saveScreen e restScreen restaurando com encode errado
Ola!
Já tinha postado aqui, em uma conversão clipper, que fiz para harbour.
Saudações,
Itamar M. Lins Jr.
Já tinha postado aqui, em uma conversão clipper, que fiz para harbour.
Código: Selecionar todos
function xyz_DE_TELA_CLIPPER
hb_cdpSelect("EN")
...Funções para desenho das telas, com os caracteres da tabela "EN"
hb_cdpSelect("PTISO")
return .t.
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
