Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Alternar color en DBCtrlGrid según datos (https://www.clubdelphi.com/foros/showthread.php?t=77565)

M.L.Casellas 08-02-2012 10:55:03

Alternar color en DBCtrlGrid según datos
 
Hola;

Estoy tratando de mejorar mi aplicación y voy detrás de conseguir algo que no se si se podrá hacer. He buscado info, pero no encuentro nada.

He visto como colorear cada fila de un DBGrid según el dato de un campo de la tabla o bien alternar cada fila dos colores. Pero yo necesito hacer algo parecido a un DBCtrlGrid. En él se muestran articulos que pertenecen a un tipo en concreto y están ordenados por el mismo. Tengo colocado un Panel y dentro del mismo un DBImage y un DBText (estos alineados con Margins para que se vea alrededor el panel). Lo que me gustaría es que el panel cambiara de color según el tipo de producto. Así se diferenciaria mejor donde acaba y empieza cada grupo.

■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■

■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■


Pero claro, DBCtrlGrid no dispone del evento OnDrawColumCell ni nada parecido. No consigo saber como poder hacer esto, si es que se puede.

¿Alguna idea?, gracias ■ ■ ■

Neftali [Germán.Estévez] 08-02-2012 12:29:42

Posee un evento OnPaintPanel.
¿Has probado con este?

M.L.Casellas 08-02-2012 19:23:57

Gracias Neftali :)

Si se puede hacer con el evento OnPaintPanel, pero no consigo implementarlo correctamente. Comparo el código del campo "SubFamilia" con el anterior, pero el primer registro de lo que ya es una siguiente familia todavía aparece del color anterior. Ya las siguientes si toman el 2º color, pero se me cuela ese utlimo registro. Debería ya cambiar, pero cambia al 2º registro de la nueva "SubFamilia".

defcon1_es 09-02-2012 11:32:42

Buenos días.

Se me ocurre que podías añadir 1 campo más a la tabla de subfamilias para indicarle el color de esa subfamilia,
y en el evento OnPaintPanel le asignas el color correspondiente, y así no tienes que comprobar nada más.

M.L.Casellas 14-02-2012 18:20:40

Gracias defcon1_es :)

Pero no me sirve. Cada sub-familia que de de alta el usuario tendría que crear un color (demasiados colores :D). Lo que yo prentendo es alternar entre dos colores, clWhite & clSilver por ejemplo. Al estilo como se hace con las lineas de los DBGrids y en los propios informes impresos. Pero en lugar de alternar a cada registro, a grupos de registros, a cada cambio de subfamilia.

¡Saludos!

ecfisa 14-02-2012 21:20:52

Hola M.L.Casellas.

Aunque no se trata del mismo componente, la situación es la misma. Revisá si este enlace te brinda alguna idea: Alternar colores en dbgrid

Saludos.


La franja horaria es GMT +2. Ahora son las 06:20:46.

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