5,713
社区成员
发帖
与我相关
我的任务
分享
我是在DrawColumnCell事件里面根据图片路径加载图片出来的
procedure TFSOrder.DetailGridDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
var
jpeg: TDBImageEh;
FileName: String;
size: Integer;
begin
if (Column.FieldName = 'IMG') and (Column.Field <> NIL) then
begin
jpeg := TDBImageEh.Create(self);
jpeg.PicturePlacement := ipStretchEh;
size := 100;
try
if FileExists(ExtractFilePath(ParamStr(0)) + 'IMG/' +
DetailData.FieldByName('ProNo').AsString + '1.jpg') then
FileName := ExtractFilePath(ParamStr(0)) + 'IMG/' +
DetailData.FieldByName('ProNo').AsString + '1.jpg'
else if FileExists(ExtractFilePath(ParamStr(0)) + 'IMG/' +
DetailData.FieldByName('ProNo').AsString + '1.png') then
FileName := ExtractFilePath(ParamStr(0)) + 'IMG/' +
DetailData.FieldByName('ProNo').AsString + '1.png'
else
FileName := ExtractFilePath(ParamStr(0)) + 'IMG/WJ.JPG';
MakeThumbnailImage(FileName, size, size, jpeg.Picture, True);
DetailGrid.Canvas.StretchDraw(Rect, jpeg.Picture.Graphic);
finally
jpeg.Free;
end;
end;
end;
由于不停的去读取存储的图片,数据太多在拉动数据的时候,就会卡死。所以想把加载过的图片放到缓存里面,避免重复去读取存储,直接就获取缓存的图片
我是根据DetailData.FieldByName('ProNo').AsString去定位图片的 需要用这个做索引有什么办法
问题已经解决