Código
Para que tudo ocorra conforme programado, o DBGrid náo pode ter nenhuma coluna (Columns) definidor no grid. As configurações do grid deve ser feito diretamento no ClientDataSet através das propriedades dos fields (DisplayLabel e DisplayWidth) onde influenciará no label exibido na grid e no tamanho do campo.
Agora vamos ao assunto desta dica.
1º - Crie o procedimento conforme mostrado a baixo.
procedure GridZebrada(cds: TClientDataSet; Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
procedure TTelaPrincipalF.GridZebrada(cds: TClientDataSet;
Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
begin
if odd(cds.RecNo) then
TDBGrid(Sender).Canvas.Brush.Color := $00B9FFFF
else
TDbGrid(Sender).Canvas.Brush.Color:= clCream;
TDbGrid(Sender).Canvas.font.Color:= clBlack;
if gdSelected in State then
with (Sender as TDBGrid).Canvas do
begin
Brush.Color := $004080FF;
FillRect(Rect);
Font.Style := [fsbold]
end;
TDbGrid(Sender).DefaultDrawDataCell(Rect, Field, State);
end;
2º - Para utilizar este procedimento é preciso programar o mesmo no evento DrawDataCell do grid desejado.
Onde ficará assim:
procedure TTelaPrincipalF.DBGrid1DrawDataCell(Sender: TObject;
const Rect: TRect; Field: TField; State: TGridDrawState);
begin
GridZebrada(cdsAplicativo, Sender, Rect, Field, State);
end;
Vlw galera.
Ta ai a dica
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009