FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Alternar dos colores en las lineas de un DBGrid.
Hola,
¿Como podria hacer q un DBGrid Alternara el color de las lineas. Osea, por ejemplo: Blanca-Gris-Blanca-Gris Igual que algunas facturas y albaranes. Es algo q ayuda mucho visualmente. Gracias |
#2
|
||||
|
||||
Yo recomiendo usar un RxDBGrid, de la siguiente manera:
Código:
procedure TForm1.GridGetCellParams(Sender: TObject; Field: TField; AFont: TFont; var Background: TColor; Highlight: Boolean); begin if DataSet.RecNo mod 2 = 0 Then Background := clSilver; end;
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
Con el DBGrid normalito puedes hacerlo poniendo su propiedad DefaultDrawing en false y escribiendo esto en su evento OnDrawColumnCell:
Código:
const // Aquí los colores que desees Colores: array[Boolean] of TColor = (clWhite, clSilver); var Color: TColor; begin Color := Colores[ Odd(Column.Field.DataSet.RecNo)]; if not (gdSelected in State) then (Sender as TDBGrid).Canvas.Brush.Color := Color; (Sender as TDBGrid).DefaultDrawColumnCell(Rect, DataCol, Column, State); end; |
#4
|
|||
|
|||
Gracias a los dos me va genial !!! pero........
....Me funciona en todas las Rejillas menos en una donde hago la venta. Se trata de una tabla Detalle (lineas de venta) me da un error Acces violation in .exe He pensado q podria ser el numero de registros, y al añadir la primera linea, al solo haber un registro por eso me daba error, pero aun metiendolo en un if para comprobar el numero de registros y segun esto poner la propiedad DefaultDrawing en false, me sigue dando error en cuanto llega al numero de registros que le especifico que primero han sido 2 (logico). |
#5
|
|||
|
|||
Que tal Amigos.
Comparto un aporte del colega Mike Eberhart http://suretalent.blogspot.com.ar/20...-mods-for.html Son instrucciones para modificar la unit dbgrid.pas. De esa forma, luego incluimos el archivo dbgrid.pas modificado a la carpeta del proyecto. Y automaticamente se asigna el color alternado a las filas sin programar nada. Funciona de maravillas tras cambiar indices en tiempo de ejecución. Sólo tenemos que asignarle un color a las celdas. Y la unit le asignará un color mas claro de la gama seleccionada a la fila siguiente. El truco funciona perfectamente hasta delphi xe2. Yo lo he usado hasta xe2. Luego he pasado a xe5 y dejó de funcionar. No genera errores pero no funciona. |
|
|
|