Como inserir uma imagem em campo de DBgrid?

Delphi

25/07/2003

Sou estágiária de Informática, programo em Delphi e gostaria de saber como faço para incluir uma imagem em um campo do DBGrid. Já tentei criar um descendente dele mais não consegui visualizar imagens.

Desde já,
Obrigada,

Marcela


Marcela_m

Marcela_m

Curtidas 0

Respostas

Marcelo.c

Marcelo.c

25/07/2003

Código retirado da Bíblia do Delphi (Marco Cantú)

Imaginando que a imagem esteja armazenada no BD, a estratégia mais simples é criar um objeto TBitmap temporário, atribuir a ele o campo gráfico da grade, configurando sua propriedade Visible em False, e incluir a imagem com o seguinte código no evento OnDrawColumnCell:

var
  Bmp: TBitmap;
  OutRect: TRect;
  BmpWidth: Integer;
begin
  //Retângulo de saída padrão
  OutRect := Rect;
  
  if Column.Field = Table1CampoX then
  begin
     //desenha a imagem
     Bmp:= TBitmap.Create;
     try
        Bmp.Assign(Table1Graphic);
        BmpWidth := (Rect.Bottom - Rect.Top) * 2;
        OutRect.Right := Rect.Left + BmpWidth;
        DBGrid1.Canvas.StretchDraw(OutRect, Bmp);
     finally
        Bmp.Free;
     end;
     //reinicializa o retângulo de saída, deixando espaço para a figura
     OutRect := Rect;
     OutRect.Left := OutRect.Left + BmpWidht;
  end;
//desenho padrão
DBGrid1.DefaultDrawDataCell(OutRect, Column.Field, State);
end;



GOSTEI 0
POSTAR