PDA

Ver la Versión Completa : Pintar Fila por medio en ub DBGrid


josem
29-12-2004, 00:57:13
Hola Integrantes:
Alguien puede hecharme una mano con esto:
Como puedo pintar en una grilla las filas intermedias de un color y las otras de otro.??.
Las pares de azul y las impares de blanco. Por poner un ejemplo.
Gracias.

Saludos
Jose Miguel B.

marcoszorrilla
29-12-2004, 07:49:44
Mira a ver si te puede servir este código:

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
var
iRowNumber : Integer;
begin
with (Sender as TDBGrid), Canvas do begin
iRowNumber := (Rect.Top + Rect.Bottom) div ((1+Rect.Bottom - Rect.Top)*2);
if Odd(iRowNumber) then Brush.Color := clYellow
else Brush.Color := clWhite;
FillRect(Rect);
DefaultDrawDataCell(Rect, Field, State);
end;
end;


Un Saludo.

josem
29-12-2004, 19:55:18
Hola MarcosZorrilla:

Agradesco tu codigo. Este funciono bien pero solo dentro del marco de la ventana. Si me muevo hacia arriba o abajo. al traer nuevas lineas a la grilla, estan aparecen en blanco.??

Tienes alguna idea de por que pasa esto.


Saludos
Jose Miguel B'

Delfino
01-01-2005, 20:54:52
El componente TJvDBGrid de la libreria JVCL tiene una propiedad AlternateRowColo q puedes tener este efecto sin escribir codigo, ademas tiene muchas otras caracteristicas interesantes, por ejemplo poder hacer un clic sobre los titulos y q aparezca una flechita del sort..