Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Escribir caracteres "box drawing" en Delphi 10.3 (https://www.clubdelphi.com/foros/showthread.php?t=94155)

JosepMLlort 01-09-2019 13:09:35

Escribir caracteres "box drawing" en Delphi 10.3
 
Hola,

Estoy intentando escribir caracteres "box drawing" en un TMemo. O sea, caracteres de los que sirven para dibujar cajas: └ ├

El problema es que en el editor de Delphi no me funciona el antiguo recurso de teclear Alt-192 (└) que aún funciona, por ejemplo, en este mismo editor de mensajes o en Google Chrome. Si lo intento en el editor de Lines del TMemo me escribe otros caracteres.

Sabéis cómo puedo conseguirlo?

Gracias por vuestra atención.

Casimiro Notevi 01-09-2019 19:51:13

Seguramente porque ahora es unicode, utf8.
Mira este enlace con la tabla.

Ñuño Martínez 02-09-2019 11:27:47

Creía que, por defecto, Delphi apostaba por UTF-16. ¿Cambiaron de idea?

Casimiro Notevi 02-09-2019 11:42:36

Cita:

Empezado por Ñuño Martínez (Mensaje 533311)
Creía que, por defecto, Delphi apostaba por UTF-16. ¿Cambiaron de idea?

No sé, borré la "máquina virtual" donde instalé la versión última para probarla.

JosepMLlort 02-09-2019 18:02:43

Creo que Delphi 10.3 (mi versión) utiliza UTF16

He encontrado los códigos de UTF16 BoxDrawings. Son desde feff2500 hasta feff257f

No todas las fuentes son compatibles con estos caracteres, pero una de las que sí los permite es Arial Unicode MS.

Por ejemplo, la línea vertical gruesa es feff2503, o U+2503, o 9475 decimal

Una vez averiguado esto, no sé cómo almacenar estos caracteres en una String, ni cómo escribirlos en un Memo o un Canvas (Sé usar OutTextXY, pero solo para caracteres "normales").

Ñuño Martínez 03-09-2019 11:39:32

Si usas UTF-16, entonces hay que usar WideString, si usas UTF-8 entonces puedes usar AnsiString. Delphi define String como alias de una de estas dos, dependiendo de que la versión de Delphi use internamente UTF-16 ó UTF-8. También existe UnicodeString (al menos en Free Pascal), pero no sé exactamente cómo funciona.

JosepMLlort 04-09-2019 14:14:36

Me ha funcionado definiendo una widestring. He escrito los caracteres con Alt-número en Chrome, los he copiado en el portapapeles y los he asignado en el código a la widestring, o incluso a la caption de una Label. El programa pide confirmación para guardar la unit en modo utf-8 y ya está.

Gracias por vuestra ayuda!

:)


La franja horaria es GMT +2. Ahora son las 02:16:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi