Fórum DBGRID Zebrada com DBGRID da RXLIB #267932
09/02/2005
0
Pessoal,
Já vi o procedimento que preciso fazer para deixar uma DBRIG zebrada. Gostaria de saber se preciso fazer este mesmo procedimento quando uso a DBGRID da RXLIB ou existe outro procedimento.
Obrigado,
Alex
Deixando um objeto DBGRID zebrado:
----------------------------------
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;
Experimente assim:
----------------------
No evento OnDrawColumnCell do DBGrid:
Código:
If TabelaComissao.Value=´Pago´ 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);
Outra Forma:
---------------
Tirado da edição 44 da Revista
if not odd(Query.RecNo) then // zebra
if not (gdSelected in State) then
begin
DBGrid1.Canvas.Brush.Color := amarelo;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawDataCell(Rect, Column.Field, State);
end;
Já vi o procedimento que preciso fazer para deixar uma DBRIG zebrada. Gostaria de saber se preciso fazer este mesmo procedimento quando uso a DBGRID da RXLIB ou existe outro procedimento.
Obrigado,
Alex
Deixando um objeto DBGRID zebrado:
----------------------------------
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;
Experimente assim:
----------------------
No evento OnDrawColumnCell do DBGrid:
Código:
If TabelaComissao.Value=´Pago´ 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);
Outra Forma:
---------------
Tirado da edição 44 da Revista
if not odd(Query.RecNo) then // zebra
if not (gdSelected in State) then
begin
DBGrid1.Canvas.Brush.Color := amarelo;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawDataCell(Rect, Column.Field, State);
end;
Alexsandro
Curtir tópico
+ 0
Responder
Posts
09/02/2005
Aroldo Zanela
Colega,
É muito mais simples na RxLib, pois no evento GetCellParams são passados os seguintes parâmetros: Sender: TObject; Field: TField;
AFont: TFont; var Background: TColor; Highlight: Boolean, facilitando não só a criação de grades zebradas, bem como, outras ´perfumarias´ como por exemplo, destacar uma coluna de vencimento.
Exemplo:
É muito mais simples na RxLib, pois no evento GetCellParams são passados os seguintes parâmetros: Sender: TObject; Field: TField;
AFont: TFont; var Background: TColor; Highlight: Boolean, facilitando não só a criação de grades zebradas, bem como, outras ´perfumarias´ como por exemplo, destacar uma coluna de vencimento.
Exemplo:
var DtaVecto : TDateTime; begin Try DtaVecto := (Sender as TrxdbGrid).DataSource.DataSet.FieldByName(´VENCTO´).AsDateTime; Except DtaVecto:= Date; End; If DtaVecto <= dtpCritica.DateTime Then Begin Background:= clInfoBk; AFont.Color:= clBlack; End Else AFont.Color:= clBlue; If Field.FieldName = ´VENCTO´ Then Begin Background:= clYellow; End; end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)