PDA

Ver la Versión Completa : Subrayado "rizado" en TRichEdit


Virgilio_43
14-01-2006, 11:06:19
Hola:
¿Es posible conseguir programáticamente en un control TrichEdit un subrayado de palabras que aparezca “rizado” y en colores, como las faltas ortográficas en MSWor o Write?
Mi consulta se refiere concretamente a cómo conseguir el efecto, pues asignarlo por programa ya lo sé hacer.
Sospecho que habrá que recurrir a una función del API de Windows. He buscado algo similar en los foros, pero no lo he encontrado. Si ya está, pido excusas.
En cualquier caso, gracias.:confused:

dec
14-01-2006, 20:22:24
Hola,

Hay una especie de "plugin" para los componentes SynEdit (http://sourceforge.net/projects/synedit) de nombre TSynSpellCheck (http://www.synspellcheck.prv.pl/), cuyo nombre ya indica para qué sirve. Lo adjunto en un archivo porque en su página Web no está disponible y lo conseguí a través de la lista de correo de los componentes SynEdit. Es de código abierto.

Al grano. El caso es que al leer tu pregunta me entró la curiosidad por saber cómo hacía su trabajo dicho componente, puesto que hace, precisamente, lo que tú quieres. No utiliza para subrayar las palabras el API de Windows, sino que se "limita" (para mí no es sencillo seguir el código fuente) a pintar una serie de puntos en el Canvas del editor.

Es decir, va "punteando" en serie de tres o cuatro puntos el subrayado, de tal modo que sube y baja mientras "puntúa" (pinta puntos) hasta formar el típico "rizado" a que te refieres. Incluso puede hacerlo en base a dos estilos: el de Microsoft Word y el de Word Perfect.

Es curiosísimo cómo hace lo que hace, o al menos a mí me lo parece. No sé hasta qué punto podrías trasladarlo a un componente "TRichEdit" ni qué tan fácil sería. Pero, al menos puedes echar un vistazo a su código fuente por si te ofrece alguna ayuda. No sé que exista ninguna función u otro recurso en el API de Windows para algo así, pero, eso digo, que tal vez exista, que no lo sé. ;)

Virgilio_43
14-01-2006, 20:48:44
Gracias de nuevo. Ya veré si lo puedo aplicar a RichEdit y te lo cuento en dos o tres días.