GARANTIR DESCONTO

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;


Alexsandro

Alexsandro

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:
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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar