[Lazarus-es] Codificación de caracteres

Antonio Évora aevorar en gmail.com
Jue Nov 11 16:14:05 CET 2010


El 11/11/10 15:57, Antonio Évora escribió:
> El 11/11/10 15:49, Paola Bruccoleri escribió:
>> El 11/11/2010 12:26 p.m., Antonio Évora escribió:
>>> Hola compañeros,
>>> Estoy sufriendo una paranoia con el tema de los acentos. Según he 
>>> leído desde la versión 0.9.25 de lazarus todo está codificado con 
>>> UTF8 (tengo la 0.9.28) sobre SO Windows XP.
>>>
>>> Bueno tengo el siguiente procedimiento:
>>>
>>> procedure Aviso(Texto: string);
>>> begin
>>>     Application.MessageBox(pchar(Texto),'Aviso',64);
>>> end;
>>>
>>> Y lo llamo con:
>>>
>>> Aviso('Los parámetros han sido actualizados con éxito');
>>>
>>> Al mostrar el mensaje los caracteres acentuados son sustituidos por ?.
>>>
>>> Pensando que pudiera ser por el tipo del parámetro lo cambie por 
>>> UTF8String con el mismo resultado. Examinando el valor del parámetro 
>>> una
>>> vez pasado siempre va codificado en Ansi independientemente del tipo.
>>>
>>> Cambiando la instrucción del procedimiento por:
>>>
>>> Application.MessageBox(pchar(AnsiToUtf8(Texto)),'Aviso',64);
>>>
>>> Funciona OK.
>>>
>>> ¿Como puedo trabajar para evitar el tener que andar convirtiendo 
>>> entre tipos de datos?
>> Hola Antonio...
>>
>> es mejor usar MessageDlg. Yo uso esto y se ven perfectamente los 
>> caracteres acentuados; te pego un ejemplo donde lo uso:
>>
>>            MessageDlg('¡¡¡ Atención...!!!', 'Número de comprobante ya 
>> ingresado', mtWarning, [mbOk], 0);
>>
>> quizás tb te sirva el ShowMessage..
>>
>>
>> Otra cosa que te puede servir es el SysToUTF8. Ejemplos:
>>   cSystemVersion        := SysToUTF8('Versión: ') + GetAppVersion;
>>
>> aquí, si no usaba esa función, me aparecía mi?ercoles
>>   pnlBotom.Caption      :=SysToUTF8(FormatDateTime('dddddd tt', now));
>>
>>
>> chauuuuuuuu
>>
>>
>>
>> _______________________________________________
>> Lazarus-es mailing list
>> Lazarus-es en lists.lazarus.freepascal.org
>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
> Primeramente gracias por contestar Paola.
>
> Probare el MessageDlg, en cuanto a lo del SysToUTF8 lo habia leido (es 
> más creo que era un post tuyo :D).
>
> Ya te cuento.
>
> Un saludete.
Con el MessageDlg ocurre lo mismo, si el texto es un literal funciona 
sin problemas, pero si el texto es pasado como parámetro de un 
procedimiento/funcion salen los ? en vez de los acentos.

¿alguna idea?


Saludos.




More information about the Lazarus-es mailing list