Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-03-2023
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Colorear secciones en un THeaderControl

En un aplicación en BCB 6 me interesaría poder colorear o diferenciar de alguna manera determinadas secciones de un THeaderControl. Estuve mirando por el foro y sólo encontré una respuesta de roman en la que cita el evento OnCustomDraw en Pintar de un color un THeaderSection o la cabecera de un TListColumn. He estado mirando y, al menos en Builder, tal evento no existe para THeaderControl o no soy capaz de encontrarlo. ¿Alguien me puede guiar en como modificar el aspecto de una sección en este elemento?
Responder Con Cita
  #2  
Antiguo 28-03-2023
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.285
Poder: 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
A mi un código como este me funciona (lo he probado en una versión más nueva de Delphi, eso sí):

Código Delphi [-]
procedure TForm3.HeaderControl1DrawSection(HeaderControl: THeaderControl;
  Section: THeaderSection; const Rect: TRect; Pressed: Boolean);
var
  oldColor:TColor;
begin
  if (Section.Index = 2) then begin
    HeaderControl.Canvas.FloodFill(Rect.Left + 1, Rect.Top + 1, clInfoBk, TFillStyle.fsSurface);
    HeaderControl.Canvas.Brush.Color := clInfoBk;
    HeaderControl.Canvas.Pen.Style := TPenStyle.psClear;
    HeaderControl.Canvas.Rectangle(Rect);
  end;
end;



Lo único importante, es que la tercera columna (en este caso Index=2) hay que definirla con la propiedad Style=hsOwnerDraw.

Si no defines así esa propiedad, el evento no salta sobre esa columna. Es decir, en mi ejemplo, que tiene definidas tres columnas, y sólo la tercera definida como hsOwnerDraw, el evento OnDrawSection sólo salta en la tercera.
__________________
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
  #3  
Antiguo 28-03-2023
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
¡Perfecto! Muchas gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Secciones Ejemplos y Codigo Fuente Colgueit Varios 9 10-05-2006 10:04:07
Secciones en QuickReport wvidela Impresión 1 03-08-2005 18:51:57
¿Como puedo buscar por secciones? rbx500 Tablas planas 1 28-06-2005 15:27:41
Enlaces sin funcionar en Secciones Delphi Pack Phacko Varios 2 02-11-2004 14:21:17
Puedo copiar unas cuantas secciones?? DarkByte Varios 2 06-01-2004 22:42:21


La franja horaria es GMT +2. Ahora son las 18:22:05.


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
Copyright 1996-2007 Club Delphi