Pintar linea de TTreeView de 2 colores
Buenas a todos.
Tengo un problemilla y estoy atascado. No se si es que me he obcecado, pero el caso es que algo que parece simple no me acaba de funcionar... :-( La idea es poder pintar una línea de un TreeView (el texto de un nodo) en 2 colores diferentes. Una imagen que refleja más o menos lo que necesito es esta: Se que con componentes más avanzados que el estándard (tipo VirtualTreeView de Softgems) se podrá hacer, pero me resisto a utilizarlo para algo que parece tan simple. Utilizo en evento OnDrawCustomcell del TTreeView, pero no consigo cambiar el color.
El segundo texto que debería salir en rojo y sin negrita sigue saliendo igual que el otro. ¿Alguna sugerencia? Estoy espeso hoy y me debo estar dejando algo... :( |
No es la primera vez, ni eres el primero en tener este problema. Un miembro de StackOverflow tuvo el mismo.
Te daré la misma solución que dí en stackoverflow en ese momento. http://stackoverflow.com/questions/9...537896#9537896 Utiliza Canvas.Refresh luego de cambiar las propiedades de la fuente.
Esto lo aprendí "the hard way" cuando estaba desarrollando Biolab. Saludos! |
¡Vaya! Pues ¡qué cosa más rara! Estuve a punto de probar el Refresh pero pensé que eso iba a causar un stack overflow al rellamar al método de pintado. Irónicamente, la respuesta la pusiste en StackOverflow :D
// Saludos |
jaja así es román. A simple vista pareciera que al llamar a "refresh" entrarías en un ciclo interminable. Pero en realidad si tienes en cuenta la estructura de la VCL, sabrás que no es así. El dibujado del lienzo es controlado e instruido por el padre. No es lo mismo llamar "Form1.Refresh" dentro del evento OnPaint del formulario, a llamar "Form1.Label1.Refresh" en el mismo evento. En el primero sí entrarías en un bucle infinito. En el segundo caso, no.
|
Cita:
En estos momentos estaba así... Mira que le he dado vueltas... Con ese simple cambio la cosa tiene mejor pinta... Muchas gracias. |
Veo que hay buenos programadores por aquí, lo mismo me hago asiduo a estos foros :)
|
La franja horaria es GMT +2. Ahora son las 02:27:47. |
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