FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Pintar de un color un THeaderSection o la cabecera de un TListColumn
Hola chicos.
Necesito ayuda, tengo que pintar de un color la cabecera de un TListColumn o en todo caso una sección (es decir THeaderSection) de un THeaderControl. He agotado todos los medios posibles y nose como realizar dicha tarea, cualquier ayuda o guía queda muy agradecida. Gracias |
#2
|
||||
|
||||
El problema es que el control ListView de Delphi no expone los eventos necesarios para pintar los encabezados.
El HeaderControl sí expone el evento OnCustomDraw para tal efecto pero tratar de sustituir el encabezado de un ListView por uno propio puede tornarse muy complicado para sincronizarlo con las columnas. La manera en que he visto que logran esto es haciendo uso del siguiente hecho: cuando Windows debe pintar el header, manda un mensaje WM_NOTIFY a la ventana padre- en este caso el ListView -con información relacionada a la etapa de dibujado. Para captar este mensaje, lo ideal sería crear una componente derivada de TListView; pero para fines prácticos podemos usar el viejo truco de la "componente usurpadora":
Esto es, se declara en la misma unidad que el formulario que contiene al ListView y antes de la declaración de éste, una clase del mismo nombre de la componente que nos interesa que descienda de ella. Esta nueva clase "usurpa" la original haciendo que la componente insertada en el formulario adquiera la nueva funcionalidad. Para la implementación de WMNotify debemos incluir la unidad CommCtrl (no confundir con ComCtrls) para la definición de las estructuras de datos y constantes necesarias. La implementación es sencilla:
// Saludos |
#3
|
|||
|
|||
Muchas gracias Maestro Roman, realmente necesita ayuda con respecto a este problema, me has ahorrado muchas complicaciones y también tiempo.
|
#4
|
|||
|
|||
Corrección:
Muchas gracias Maestro Roman, realmente necesitaba ayuda con respecto a este problema, me has ahorrado muchas complicaciones y también tiempo. |
#5
|
|||
|
|||
Algo extraño al pintar las cabezas
Hola:
Ante todo, muchas gracias, encontré este hilo y me solucionó un problema, y me quedó uno menor: Cuando los títulos del ListView están pintados, al desplazarlos no arrastra toda la columna, solo se mueve el cabezal, pero los datos quedan donde están. He buscado por todos lados, pero no consigo arreglarlo. Tiene solución, cual es? Gracias de antemano. Cita:
|
|
|
|