Pesquisei e não encontrei - DBGrid Zebrado com formatação
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
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
Curtidas 0
Respostas
Arc
20/07/2005
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
a fonte nunca tentei
GOSTEI 0
Demetrius
20/07/2005
Topo!!!!!
:D
:D
GOSTEI 0
Idivaldo.mb
20/07/2005
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
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
GOSTEI 0
Demetrius
20/07/2005
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]
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]
GOSTEI 0
Demetrius
20/07/2005
Sobe!!!!!!
GOSTEI 0
Massuda
20/07/2005
...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;
GOSTEI 0
Demetrius
20/07/2005
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.
Obrigado a todos que ajudaram.
GOSTEI 0
Zap40
20/07/2005
///10 pelo objetivo
10 pelo explicação
e mais 10 por ter colocado o codigo legivel
10 pelo explicação
e mais 10 por ter colocado o codigo legivel
GOSTEI 0