varios colores texto


([N1] lsmsusvilla) #1

Un dilema, alguien a conseguido o se puede poner diferentes colores al texto en un campo edicion alfabetica.
Me refiero no a cambiar el texto de todo el campo si no el poder poner una palabra en un color y otra en otro color al mismo tiempo.


([N3] pacosatu) #2

Hola lsmsusvilla.

No es un dilema, la respuesta es NO.
La propiedad Color es un atributo del Control “Edición alfabética” que afecta a todo el contenido.

Para conseguir lo que quieres debes usar un Control de “Texto enriquecido” en el que el contenido puede tener incrustados atributos de color, tipo de letra, estilo, etc… al estilo de los tag’s HTML.

Saludos
Paco Satué


([N1] lsmsusvilla) #3

Ok entiendo estoy haciendo un experimento para ver si logro algo parecido luego te cuento.
Otra pregunta que es por donde me estoy decantando para conseguirlo, al aplicar un estilos CSS, como se puede especificar un color medio transparente con el canal alfa. hay alguna manera


([N1] lsmsusvilla) #4

Haber: lo que quiero conseguir es que en el campo busqueda de un formulario al poner las claves tipo Google (OR, AND o “”), te ponga las palabras a buscar en un color (negro) y las palabras clave OR, AND en (azul) por ejemplo.

Lo estaba intentando hacer jugando con las transparencias superponiendo un campo encima de otro, pero claro (y muchas gracias de antemano) vienes tu y me dices lo del campo texto enriquecido que no me habia dado ni cuenta en ese pequeño detalle, y creo que con eso si se puede hacer.

Y ya solo me queda una pregunta cual es el Widget para aplicar CSS al campo texto enriquecido.


([N3] pacosatu) #5

Hola lsmsusvilla.

El Widget es VTextEdit, aunque con CSS de Velneo dudo que puedas hacer lo que quieres.

De forma dinámica, conforme vaya tecleando el Usuario, cambiar el color del texto puede ser algo complicado. El evento Value change dispara un Manejador que comprueba el contenido del VTextEdit y coloreas el texto con tag’s HTML. Habría que ver si eso es viable de cara a la usabilidad.

Saludos
Paco Satué


([N1] lsmsusvilla) #6

Si es viable y ya casi conseguido pero surge otro problema, cuando formateas el campo que es en si una variable, lo formatea, lo cambia pero te va al inicio del campo y al seguir escribiendo lo haces desde el inicio. Como se puede conseguir que te formatee la variable para darle los colores y que automaticamente te valla al final del campo para poder seguir escribiendo.


([N1] lsmsusvilla) #7

sorry vaya patada al diccio…


([N3] pacosatu) #8

Hola lsmsusvilla.

A eso me refería con la usabilidad, que no vuelvas loco al Usuario con cambios fantasmas en el texto tecleado.

La clase VLineEdit tiene una función end() para mandar el cursor al final del texto. Esta función no existe en VTextEdit o por lo menos no está documentada.

Puedes enviar una pulsación de tecla mediante la WshShell.SendKeys() de las macros VBS. Aunque solo funcionaría en Windows. Para otros entornos habrá algo equivalente.

Saludos
Paco Satué


([N1] lsmsusvilla) #9

Muchos thanks, por tu ayuda y aunque se que no era tu intención una vez mas me haces ver lo ignorante que soy, y/o lo afortunado de poder seguir aprendiendo.