1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect:
TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
tmp : TBitmap;
stream : TMemoryStream;
begin
if(Column.Field.IsBlob) then begin
stream := TMemoryStream.Create();
tmp := TBitmap.Create();
try
TGraphicField(Column.Field).SaveToStream(stream);
stream.SetSize(stream.Size - 8); //On retire l'en-tête du blob, on recupère uniquement les données
stream.Seek(int64(8), soFromBeginning); //on se place au début des données
tmp.LoadFromStream(stream);
DBGrid1.Canvas.CopyRect(Rect, tmp.Canvas, tmp.Canvas.ClipRect);
finally
tmp.Free;
stream.Free;
end;
end
else
DBGrid1.DefaultDrawDataCell(Rect, Column.Field, State);
end; |
Partager