DBGrid Cor Sim cor não
20/01/2006
0
[b:d5235dfeb4][color=blue:d5235dfeb4]1º linha[/color:d5235dfeb4]
2º linha
[color=blue:d5235dfeb4]3º linha[/color:d5235dfeb4]
4º linha[/b:d5235dfeb4]
e assim por diante...
Vagner.oliveira
Posts
20/01/2006
Martins
Boa sorte!!
21/01/2006
Rm
OnDrawColumnCell.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Db, DBTables, Grids, DBGrids, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
DBGrid1: TDBGrid;
Table1: TTable;
DataSource1: TDataSource;
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
If odd(Table1.RecNo) then
begin
DBGrid1.Canvas.Font.Color:= clWhite;
DBGrid1.Canvas.Brush.Color:= clGreen;
end
else
begin
DBGrid1.Canvas.Font.Color:= clBlack;
DBGrid1.Canvas.Brush.Color:= clWhite;
end;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
end;
22/01/2006
Sistemald
da uma olhada no meu dbgrid
http://desenvolvedor.donato.inf.br
de uma olhada em downloads
ele tem zebra, autosave da colunas e Checkbox
24/01/2006
Vagner.oliveira
Só está faltando um coisinha :lol: :lol: :lol:
Como eu faço pra deixar a linha selecionada com outra cor. pois quando passo ele não troca a cor como trocava antes.
24/01/2006
Vagner.oliveira
segue o código completo e funcionando beleza
if (gdSelected in State) then // se a célula está selecionada begin DBGrid1.Canvas.Font.Color:= clWhite; DBGrid1.Canvas.Brush.Color:= clBlue; end else If odd(Table1.RecNo) then begin DBGrid1.Canvas.Font.Color:= clBlack; DBGrid1.Canvas.Brush.Color:= $CCFFFF; end else begin DBGrid1.Canvas.Font.Color:= clBlack; DBGrid1.Canvas.Brush.Color:= clWhite; end; DBGrid1.Canvas.FillRect(Rect); DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
Para ficar TODA a linha selecionada da cor desejada tem que marcar as opções no oprions da DBGrid:
[b:b23a44405d]dgRowSelected - True
dgAwaysShowSelection - True[/b:b23a44405d]
24/01/2006
Aerreira
substitua:
DBGrid1.Canvas.FillRect(Rect); DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
por
DBGrid1.DefaultDrawDataCell(rect,Column.Field,State);
Vai funcionar melhor, pois com FillRect e TextOut você irá mostrar todos os campos do grid ´AsString´ e perderá formatação original de campos numéricos e monetários. Com DefaultDrawDataCell o campo é apresentado com sua formatação original, seja ela qual for.
Clique aqui para fazer login e interagir na Comunidade :)