Olha ai embaixo um exemplo bem detalhado que além de coloca uma imagem.
procedure TfrmHome.dbGradeDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var NewRect : TRect; Texto: string; CorFundo : TColor; begin if (gdSelected in State) or (gdFocused in State) then begin CorFundo := $00FFF9EA; dbGrade.Canvas.Brush.Color := CorFundo; NewRect.Left := Rect.Left+40; NewRect.Top := Rect.Top+10; NewRect.Right := Rect.Right; NewRect.Bottom := Rect.Bottom; dbGrade.Canvas.FillRect(NewRect); end else begin CorFundo := clWhite; end; with dbGrade.Canvas do begin Font.Color := clBlack; Font.Name := 'Calibri'; Font.Size := 9; Font.Style := [fsBold]; Brush.Color := $00E6E6E6; NewRect.Left := Rect.Left; NewRect.Top := Rect.Top+4; NewRect.Right := Rect.Right; NewRect.Bottom := Rect.Top+20; FillRect(NewRect); Texto := DataSource1.DataSet.FieldByName('RAZAO').Text; TextOut(Rect.Left+40, Rect.Top+5, Texto); Texto := DataSource1.DataSet.FieldByName('CNPJN').Text; TextOut(dbGrade.Width-110, Rect.Top+5, Texto); Font.Name := 'Calibri'; Font.Size := 9; Font.Style := []; Brush.Color := CorFundo; Texto := DataSource1.DataSet.FieldByName('FANTA').Text; TextOut(Rect.Left+40, Rect.Top+19, Texto); Texto := DataSource1.DataSet.FieldByName('ENDER').Text; TextOut(Rect.Left+40, Rect.Top+34, Texto); Texto := DataSource1.DataSet.FieldByName('EMAIL').Text; TextOut(Rect.Left+600, Rect.Top+34, Texto); Texto := 'Bairro:'; TextOut(Rect.Left+340, Rect.Top+34, Texto); Texto := DataSource1.DataSet.FieldByName('BAIRR').Text; TextOut(Rect.Left+380, Rect.Top+34, Texto); Texto := DataSource1.DataSet.FieldByName('HOMEP').Text; TextOut(Rect.Left+600, Rect.Top+49, Texto); Font.Style := [fsBold]; Texto := DataSource1.DataSet.FieldByName('CIDAD').Text; TextOut(Rect.Left+40, Rect.Top+49, Texto); Font.Style := []; Texto := 'Cep:'; TextOut(Rect.Left+340, Rect.Top+49, Texto); Texto := DataSource1.DataSet.FieldByName('CEPNU').Text; TextOut(Rect.Left+380, Rect.Top+49, Texto); Font.Style := []; Font.Size := 9; Texto := 'Fone:'; TextOut(Rect.Left+40, Rect.Top+64, Texto); Font.Size := 9; Texto := DataSource1.DataSet.FieldByName('TELEF').Text; TextOut(Rect.Left+70, Rect.Top+64, Texto); Texto := 'Fax:'; TextOut(Rect.Left+340, Rect.Top+64, Texto); Font.Size := 9; Texto := DataSource1.DataSet.FieldByName('FAXNU').Text; TextOut(Rect.Left+380, Rect.Top+64, Texto); Font.Style := [fsItalic]; Font.Color := $00804000; Texto := DataSource1.DataSet.FieldByName('PRODU').Text; TextOut(Rect.Left+40, Rect.Top+94, Texto); Texto := DataSource1.DataSet.FieldByName('SETOR').Text; TextOut(Rect.Left+40, Rect.Top+79, Texto); Font.Style := []; Font.Color := clBlack; Texto := 'Importadora'; TextOut(Rect.Left+600, Rect.Top+64, Texto); Texto := 'Exportadora'; TextOut(Rect.Left+870, Rect.Top+64, Texto); Font.Style := [fsBold]; Texto := 'N. Funcionários:'; TextOut(Rect.Left+850, Rect.Top+34, Texto); Texto := DataSource1.DataSet.FieldByName('EMPRE').Text; TextOut(Rect.Left+938, Rect.Top+34, Texto); Draw(Rect.Left, Rect.Top+1, imgFicha.Picture.Bitmap); Draw(Rect.Left+580, Rect.Top+36, imgMail.Picture.Bitmap); if DataSource1.DataSet.FieldByName('IMPOR').Text = 'S' then Draw(Rect.Left+580, Rect.Top+66, imgChecked.Picture.Bitmap) else Draw(Rect.Left+580, Rect.Top+66, imgUnChecked.Picture.Bitmap); if DataSource1.DataSet.FieldByName('EXPOR').Text = 'S' then Draw(Rect.Left+850, Rect.Top+66, imgChecked.Picture.Bitmap) else Draw(Rect.Left+850, Rect.Top+66, imgUnChecked.Picture.Bitmap); end; end; De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Ricardo César Cardoso Enviada em: quinta-feira, 14 de maio de 2009 13:59 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Mostrar uma imagem no dbgrid conforme o conteudo de um campo... Cara... precisei disso tempos atrás e não lembro exatamente onde achei... mas vc vai ter que usar o evento OnDrawCell (?) do/no DBGrid. Dá uma olhada nesse link: http://delphi.about.com/library/weekly/aa032205a.htm Lembro que usei alguma coisa daí. []'s Ricardo. "Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante!" --- Em qui, 14/5/09, Leonardo Quinino <leonardo.quin...@gmail.com <mailto:leonardo.quinino%40gmail.com> > escreveu: De: Leonardo Quinino <leonardo.quin...@gmail.com <mailto:leonardo.quinino%40gmail.com> > Assunto: [delphi-br] Mostrar uma imagem no dbgrid conforme o conteudo de um campo... Para: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> Data: Quinta-feira, 14 de Maio de 2009, 10:53 Pessoal, estou criando alguns métodos novos para apresentação de números, ao invés de mostrar os números quero mostrar uma imagem . Exemplo ao inves de mostrar o percentual do campo quero mostrar no dbgrid UM ICONE com (BOLINHA VERMELHA, AZUL, VERDE, AMARELA). Alguém sabe de algo de preferencia para fazer em Delphi puro (para evitar componentes) -- Leonardo Quinino [As partes desta mensagem que não continham texto foram removidas] Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]