PDA

Ver la Versión Completa : Modificar propiedades de texto en ejecucion


betopin
25-02-2009, 05:00:04
Saludos

Estoy realizando un aplicativo sobre un richedit. El problema con el que cuento es el siguiente: El usuario va escribiendo cosas sobre el richedit, ejemplo un codigo de C. Ya que int es una palabra reservada de C, quisiera que independiente de la pocision en la que esta palabra este en el richedit en el momento de ser digitada esta cambie inmediatamente sus propiedades de texto (negrilla, tipo de letra, etc...)

Importante: El usuario no selecciona la palabra para cambiar sus propiedades (seria muy simple hacerlo)...la cuestion es que automaticamente esta palabra sea digitada en el richedit cambie sus propiedades. Logicamente pueden haber varias palabras de estas dentro del richedit y a cada una de estas, se le debera de modificar el formato automaticamente

De antemano, gracias!!!!

roman
25-02-2009, 06:14:28
Hacer esto por cuenta propia requiere demasiado trabajo. Es mucho más viable que utilices un control especializado como el de SynEdit (http://synedit.sourceforge.net/), que además de libre y gratuito, viene provisto con resaltadores de sintaxis para muchos lenguajes.

// Saludos

Neftali [Germán.Estévez]
25-02-2009, 09:36:44
Se puede hacer de forma manual, pero es costoso.
Hace tiempo encontré una rutinilla por internet que lo hacía y la adapté a mis necesidades. En este caso cambia la sintaxis de un texto en SQL.

No tienen ningun secreto, se "patea" el texto en busca de palabras concretas y les cambia el estilo. Lo puedes ejecutar mientras escribes con el consiguiente efecto.

Creo que te puede servir para ver cómo está hecho e incluso si ves que es lo que necesitas puedes intentar adaptarla a tus necesidades. De todas formas, coincido con Román en que vas a reinventar la rueda. Hay soluciones como la que te comenta que están muy bien acabadas y funcionan perfectamente.

betopin
25-02-2009, 15:24:11
Vaya muchisimas gracias por ambas respuestas. Estoy empezando a conocer al SynEdit y asumo que funcionara perfectamente. Cualquier duda vuelvo y molesto. Gracias!