GARANTIR DESCONTO

Fórum Pesquisei e não encontrei - DBGrid Zebrado com formatação #288861

20/07/2005

0

Galera como todo mundo eu utilizo o código abaixo para zebrar o meu dbgrid, mas o mesmo código não deixa que as máscaras e nem os alinhamentos do dbgrid funcionem. O código joga o texto de todas as colunas para a esquerda, o tamanho da fonte é somente um além de outras coisinhas mais.

If odd(DM.CDSCadCliente.RecNo) then
begin
DBGReltPesquisa.Canvas.Font.Color:= clBlack;
DBGReltPesquisa.Canvas.Brush.Color:= $00DBDBDB;
end
else
begin
DBGReltPesquisa.Canvas.Font.Color:= clBlack;
DBGReltPesquisa.Canvas.Brush.Color:= clWhite;
end;
DBGReltPesquisa.Canvas.FillRect(Rect);
DBGReltPesquisa.Canvas.TextOut(Rect.Left+2,Rect.Top+2,Column.Field.AsString);

Pergunta:

Alguém sabe como zebrar um dbgrid sem que ele perca as suas propriedades de formatação?

Valeu galera. :D


Demetrius

Demetrius

Responder

Posts

20/07/2005

Arc

bom, eu uso um codigo diferente do seu , mas ele da o mesmo erro, ..., pelo menos o alinhamento dos dados eu coloquei direto no object inspector de cada campo da query ....funciona
a fonte nunca tentei


Responder

Gostei + 0

20/07/2005

Demetrius

Topo!!!!!

:D


Responder

Gostei + 0

20/07/2005

Idivaldo.mb

TENTE ISSO:


If odd(QApontamentos_veiculos.RecNo) then
begin
DBGrid1.Canvas.Font.Color:= clBlack;
DBGrid1.Canvas.Brush.Color:= clSkyBlue;
end
else
begin
DBGrid1.Canvas.Font.Color:= clBlack;
DBGrid1.Canvas.Brush.Color:= clWhite;
end;

if gdSelected in State then
begin
DBGrid1.Canvas.Font.Color:= clWhite;
DBGrid1.Canvas.Brush.Color:= clNavy;
end;

DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.DisplayText);

OK?


SUPORTE.HAWKSOFT@TERRA.COM.BR
(016) 8115-8386


Responder

Gostei + 0

21/07/2005

Demetrius

Obrigado amigo,
resolveu 95¬ do meu problema, mas ainda tem uma questão.
Todas as colunas ainda se encontram alinhadas a esquerda.
A linha referente ao alinhamento das colunas é a que está destacada. Já tentei fazer vários testes com mudança de parâmetros mas nenhum resolveu o meu problema.
Se você ou mais alguém tiver uma idéia agradeço muito.

If odd(DM.CDSCadCliente.RecNo) then
begin
DBGReltPesquisa.Canvas.Font.Color:= clBlack;
DBGReltPesquisa.Canvas.Brush.Color:= clSkyBlue;
end
else
begin
DBGReltPesquisa.Canvas.Font.Color:= clBlack;
DBGReltPesquisa.Canvas.Brush.Color:= clWhite;
end;

if gdSelected in State then
begin
DBGReltPesquisa.Canvas.Font.Color:= clWhite;
DBGReltPesquisa.Canvas.Brush.Color:= clNavy;
end;
DBGReltPesquisa.Canvas.FillRect(Rect);
[color=red:0f173f8752] DBGReltPesquisa.Canvas.TextOut([b:0f173f8752]Rect.Left+2[/b:0f173f8752],Rect.Top+2,Column.Field.DisplayText);[/color:0f173f8752]


Responder

Gostei + 0

21/07/2005

Demetrius

Sobe!!!!!!


Responder

Gostei + 0

21/07/2005

Massuda

...mas o mesmo código não deixa que as máscaras e nem os alinhamentos do dbgrid funcionem. O código joga o texto de todas as colunas para a esquerda, o tamanho da fonte é somente um além de outras coisinhas mais.
Isso acontece porque o código que você está usando está fazendo o desenho do texto; deixe isso por conta da rotina padrão do Delphi (TDBGrid.DefaultDrawColumnCell), que ela se encarrega dos detalhes de alinhamento e máscara:
// tratador do evento TDBGrid.OnDrawColumnCell
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  Grid: TDBGrid;
  DataSet: TDataSet;
begin
  Grid := Sender as TDBGrid;
  DataSet := Grid.DataSource.DataSet;

  if Odd(DataSet.RecNo) then begin
    Grid.Canvas.Font.Color := clBlack;
    Grid.Canvas.Brush.Color := $00DBDBDB;
  end
  else begin
    Grid.Canvas.Font.Color := clBlack;
    Grid.Canvas.Brush.Color := clWhite;
  end;
  Grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;



Responder

Gostei + 0

21/07/2005

Demetrius

Massuda valeu pela dia e pela explicação. Muitas vezes os amigos ajudam e não explicam o que fazer e/ou como fazer. As explicações são muito importantes para nós que estamos começando entendermos a codificação.

Obrigado a todos que ajudaram.


Responder

Gostei + 0

31/07/2005

Zap40

///10 pelo objetivo
10 pelo explicação
e mais 10 por ter colocado o codigo legivel


Responder

Gostei + 0

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

Aceitar