Como trocar a cor apenas da primeira linha de um grid
Galera, estou com uma duvida muito tosca...
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...
Mas não consegui realizar oque eu queria..
Agradeço desde já a ajuda de todos...
Marcos V. Rossetto
marcos@abacus.inf.br
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
Curtidas 0
Respostas
Marcos Rossetto
23/08/2012
com esse codigo vc precisa pegar em um sql quando inicia o form e passar a chave principal para a
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;
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
Eduardo Silva.
23/08/2012
Nesse mesmo evento, substitua por:
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
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
Marco Salles
23/08/2012
Acho qu eo Belo esta correto para aquilo que vc pediu no inicio do seu post
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
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