Fórum Como trocar a cor apenas da primeira linha de um grid #422275
23/08/2012
0
mas não estou conseguindo achar nada na internet que me ajuda-se..
Eu preciso trocar a cor APENAS da primeira linha de um grid....
já tentei de inúmeras mas ainda não obtive sucesso a minha ultima tentativa foi essa...
procedure TFrmFichaTecnica.GrdiDadosFornProdDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
aux,i : integer;
begin
aux:=1;
For i := 1 to QryDadosFornProd.RecordCount - 1 do
if i = aux then
begin
GrdiDadosFornProd.Canvas.Font.Color:= clRed;
GrdiDadosFornProd.DefaultDrawDataCell(Rect, GrdiDadosFornProd.columns[DataCol].field, State);
end;
end;
Mas não consegui realizar oque eu queria..
Agradeço desde já a ajuda de todos...
Marcos V. Rossetto
marcos@abacus.inf.br
Marcos Rossetto
Curtir tópico
+ 0Posts
23/08/2012
Marcos Rossetto
varialvel aux, com isso os itens que tiver a cheve com o valor vão ser coloridos de vermelho
e os outro serão preto...
Obs.:
\\GrdiDadosFornProd.Canvas.Font.Style := [fsBold] ; esse comando deixa negrito.
procedure TFrmFichaTecnica.GrdiDadosFornProdDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
If QryDadosFornProdFPDATAENTRADA.AsString = aux then
begin
GrdiDadosFornProd.Canvas.Font.Color:= clRed;
GrdiDadosFornProd.Canvas.Font.Style := [fsBold] ;
GrdiDadosFornProd.DefaultDrawDataCell(Rect, GrdiDadosFornProd.columns[datacol].field, State);
end
else
begin
GrdiDadosFornProd.Canvas.Font.Color:= clBlack;
GrdiDadosFornProd.DefaultDrawDataCell(Rect, GrdiDadosFornProd.columns[datacol].field, State);
end;
end;
Gostei + 0
24/08/2012
Eduardo Silva.
if TDBGrid(Sender).DataSource.DataSet.RecNo = 1 then
begin
TDBGrid(Sender).Canvas.Font.Color := clRed;
TDBGrid(Sender).Canvas.FillRect(Rect);
TDBGrid(Sender).DefaultDrawDataCell(Rect, Column.Field, State);
end;
Boa Sorte!
Eduardo Belo
Gostei + 0
25/08/2012
Marco Salles
so trocaria o mpetodo DefaultDrawDataCell pelo DefaultDrawColumnCell por motivos de formatação
Alguns campos quando formatados não são exibidos de forma correta utilizando o promeiro método
procedure TForm2.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var dbgrid:TDBGrid; begin dbgrid:= TDBGrid(Sender); if dbgrid.DataSource.DataSet.RecNo = 1 then begin dbgrid.Canvas.Font.Color := clRed; dbgrid.Canvas.Font.Style := [fsBold] ; end; dbgrid.DefaultDrawColumnCell(Rect, DataCol, Column, State); end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)