Title: How to show a Graphic in DBGrid Cell
// The code :
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
bmpImage: tBitmap;
intX, intY: Integer;
begin
if DataSource1.DataSet.RecNo 0 then
begin
if column.FieldName = 'COUNTRY' then
with DBGrid1.Canvas do
begin
fillRect(rect);
bmpImage := tBitmap.Create;
try
if DBGrid1.DataSource.DataSet.FieldByName('COUNTRY').AsInteger = 0 then
bmpImage.Assign(image0.Picture.Bitmap);
if DBGrid1.DataSource.DataSet.FieldByName('COUNTRY').AsInteger = 1 then
bmpImage.Assign(image1.Picture.Bitmap);
intX := ((rect.Right - rect.Left) div 2) -
(bmpImage.Width div 2);
intY := ((rect.Bottom - rect.Top) div 2) -
(bmpImage.Height div 2);
draw(rect.Left + intX, rect.Top + intY, bmpImage);
finally
bmpimage.Free;
end;
end;
end;
end;