5,392
社区成员
发帖
与我相关
我的任务
分享
procedure TfrmDLLForm.DBGridEh2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var bmp:tbitmap;
jpeg:TjpegImage;
outrect:trect;
bmpwidth:integer;
Image:TImage;
begin
outrect:=rect;
if ((column.Field =ADOQuery3.fields.FieldByName('t1'))) and (not ADOQuery3.fields.FieldByName('t1').IsNull) then
begin
jpeg := TjpegImage.Create;
jpeg.Performance:=jpBestSpeed;//这句其实可以不要
Image:=TImage.Create(self);
try
jpeg.Assign(ADOQuery3.fieldbyname('t1'));
outrect.Right :=rect.Left +bmpwidth;//照搬你的句子,但你没交代清楚这是为什么
Image.Width:=outrect.Right-outrect.Left;
Image.Height:=outrect.Bottom-outrect.Top;
Image.Stretch:=true;
Image.Picture.Graphic:=jpeg;
DBGridEh2.Canvas.StretchDraw(outrect,Image.Picture.Graphic);//画的位置未为你考虑、按你原输出位置画
finally
Image.Free;
jpeg.free;
end;
end;
end;