FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Listview vsReport : Como pintar parejas de filas de un solo color
Hola Amigos,
He buscando bastante en el grupo, pero no he podido solucionar mi problema: Tengo un listview donde muestro parejas de filas, ejemplo : A 1 Dato1 B 1 Dato1 A 2 Dato2 B 2 Dato2 A 3 Dato3 B 3 Dato3 A 4 Dato4 B 4 Dato4 Necesito diferenciar las parejas, para eso he pensado en colorear una de las parejas. Por ejemplo, pintar de mismo color A1,B1,A3,B3. Realice el siguiente codigo en el metodo lvUnoCustomDrawItem : procedure TfrmMain.lvUnoCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); begin if (TagPair = 2) and (TagColor = 0) then begin TagPair := 0; TagColor := 1; end else if (TagPair = 2) and (TagColor = 1) then begin TagPair := 0; TagColor := 0; end; if TagColor = 1 then lvUno.Canvas.Brush.Color := $FFCCCC; TagPair := TagPair + 1; end; Eso me funciona OK, pero cuando hago scroll o selecciono un item de la grilla pierdo el color de las columnas. Osea, no se mantienen las parejas de filas pintadas. PD. TagPair,TagColor son variables globales para controlar el pintado de las paejas de filas... Muchas Gracias y espero que puedan ayudarme. Wence. |
#2
|
|||
|
|||
Esto te ha de servir muy bien
Código:
http://www.delphidabbler.com/articles.php?article=16 Código:
http://www.delphidabbler.com/download.php?file=article-16-demo.zip |
#3
|
|||
|
|||
Gracias Amigo...
Muy bueno el documento....la verdad me sirvio para aclarar los conceptos. Asi que obte por definir un arreglo donde indico si la columna es o no pinta... El codigo en el evento lvUnoCustomDrawItem quedó asi : if p[Item.Index + 1] = 1 then lvUno.Canvas.Brush.Color := $FFCCCC; El arreglo p lo inicializo al momento de cargar los datos en el listview. Muchas Gracias!!!! |
|
|
|