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]

Responder a