Ver Mensaje Individual
  #1  
Antiguo 19-06-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.290
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.

Código Delphi [-]
  tv := TTreeview(Sender);

  DefaultDraw := False;

  // Calculo un par de zonas
  Rect1 := Node.DisplayRect(False);
  Rect2 := Node.DisplayRect(False);
  Rect1.Right := Rect1.Right div 2;
  Rect2.Left := Rect1.Right;

  // pinto el texto
  tv.Canvas.Font.Color := clBlack;
  tv.Canvas.Font.Style := tv.Canvas.Font.Style + [fsBold];
  tv.Canvas.TextRect(Rect1, Rect1.Left, Rect1.Top, Node.Text);

  // Cambio color y estilo  ˇˇˇESTO NO FUNCIONA
  tv.Canvas.Font.Style := tv.Canvas.Font.Style - [fsBold];
  tv.Canvas.Font.Color := clRed;
  tv.Canvas.TextRect(Rect2, Rect2.Left, Rect2.Top, 'Texto rojo');

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...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita