FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Listview con Checkbox
Me vi en la necesidad de utilizar un Tlistview y debía tener algunas columnas con checkbox que pudiera marcar y desmarcar, debido a ello buscando encontre como hacerlo y quiero compartir el código. De seguro a alguien le servirá.
Intente flexibilizar un poco el código, ya que el original había que indicar desde que columnas deberían ser checkbox lo que limita un poco, ya que en mi caso requeria intercalar las columnas checkbox con otras. Bueno no tantas palabras. Los procedimientos que hacen el trabajo son:
Espero sea de utilidad |
#2
|
||||
|
||||
Precisamente he desarrollado el mismo truco pero a un nivel de programación más bajo, con API.
La solución está basada en una clase que realiza un subclassing del formulario para controlar las notificaciones que envían la cabecera y el ListView. La clase agrega un ChecBox en la cabecera de la primera columna y en cada Item. También genera dos eventos, uno cuando se marca el CheckBox de la caberera y otro cuando se marca el de un Item, de esta forma tendremos control desde el formulario de lo que está pasando. Cuando se marca la cabecera, automáticamente se marcan todos los Items y cuando están marcados todos los Items individualmente, se marca la cabecera. Esta funcionalidad aparece desde Vista en adelante. El código de la clase es este:
Un ejemplo de uso:
Probado en Delphi 7 y Berlin. Saludos. Última edición por escafandra fecha: 20-01-2017 a las 23:46:57. |
#3
|
||||
|
||||
Gracias por compartirlo
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#4
|
||||
|
||||
Una aclaración sobre mi código, precisa XP.RES o su componente delphi en caso de Delphi7.
Saludos. |
#5
|
||||
|
||||
¿Qué es xp.res o el componente delphi7?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
||||
|
||||
Es el antiguo archivo de recursos para que los programas escritos en las antiguas versiones Delphi, tomarán el estilo WinXP. En Delhphi7 existía un componente para incluirlo en el formulario visualmente (en lugar de a mano en el Uses).
Saludos. |
#7
|
|||
|
|||
Estimado escafandra, creo que son un poco distintos ambas soluciones...
Adjunto imagen Sería estupendo poder reunir ambas en una solución Saludos cordiales Última edición por cloayza fecha: 23-01-2017 a las 16:06:16. |
#8
|
|||
|
|||
Ostras que bueno. Gracias.
|
#9
|
|||
|
|||
Se que han pasado unos cuantos años. Pero es un código interesante.
He probado el ejemplo de cloayza y veo que en las columnas que tienen texto (por ejemplo columna Age), si pulsas para editar aparece un checkbox también. ¿Hay alguna versión que indique que columnas solo son checkbox y cuales no? En la linea: Código:
If -1 <>listview1.perform( LVM_SUBITEMHITTEST, 0, lparam(@hittestinfo)) Then ¿se podría poner? Código:
If -1 <>TListView(Sender).perform( LVM_SUBITEMHITTEST, 0, lparam(@hittestinfo)) Then Gracias |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Checkbox en un listview | Choclito | OOP | 6 | 15-04-2011 21:55:52 |
Checkbox Transparente! | AndrecitoPz | Varios | 5 | 19-04-2010 23:31:08 |
checkbox | Lupita | Varios | 6 | 07-04-2008 16:12:53 |
Checkbox que no cheka | Kenobi | Varios | 6 | 23-01-2008 09:59:18 |
checkbox | superhopi | OOP | 3 | 12-05-2003 11:32:46 |
|