procedure TForm1.ToolButton5Click(Sender: TObject);
var ghy:TClientBlobStream;
pic:TJpegImage;
OutStream:TMemoryStream;
begin
DbImage1.Picture.Graphic := nil;
OutStream:=TMemoryStream.Create;
ghy := TClientBlobStream.Create(TBlobField(CDM.QClientDataSet.FieldByName('Image')), bmRead);
PowerArcDecompress(ghy,OutStream,ProgressCallback);//这是一个解压缩过程,它是正确的。
try
if ghy.Size > 0 then
begin
Pic := TJpegImage.Create;
try
Pic.LoadFromStream(OutStream);
DBImage1.Picture.Graphic:=Pic;
finally
Pic.Free;
end;
end;
finally
ghy.Free;
OutStream.Free;
end;
end;//执行完后报错(JP#41错误)。
问:但是我把它用文件流转换成本地文件,却可以正常浏览。
procedure TForm1.ToolButton5Click(Sender: TObject);
var ghy:TClientBlobStream;
OutStream:TFileStream;
begin
DbImage1.Picture.Graphic := nil;
If FileExists('c:\bbb.jpg') Then
If DeleteFile('c:\bbb.jpg')=False Then Exit;
OutStream:=TFileStream.Create('c:\bbb.jpg',fmCreate);
ghy := TClientBlobStream.Create(TBlobField(CDM.QClientDataSet.FieldByName('Image')), bmRead);
PowerArcDecompress(ghy,OutStream,ProgressCallback);//这是一个接压缩过程。
ghy.Free;
OutStream.Free;
DBImage1.Picture.LoadFromFile('c:\bbb.jpg');
end;
这些是用文件流转换成本地文件,它是正确的。
var ghy:TClientBlobStream;
pic:TJpegImage;
OutStream:TMemoryStream;
begin
DbImage1.Picture.Graphic := nil;
OutStream:=TMemoryStream.Create;
ghy := TClientBlobStream.Create(TBlobField(CDM.QClientDataSet.FieldByName('Image')), bmRead);
PowerArcDecompress(ghy,OutStream,ProgressCallback);//这是一个解压缩过程,它是正确的。
try
if ghy.Size > 0 then
begin
Pic := TJpegImage.Create;
try
Pic.LoadFromStream(OutStream);
DBImage1.Picture.Graphic:=Pic;
finally
Pic.Free;
end;
end;
finally
ghy.Free;
OutStream.Free;
end;
end;//执行完后报错(JP#41错误)。
问:但是我把它用文件流转换成本地文件,却可以正常浏览。
procedure TForm1.ToolButton5Click(Sender: TObject);
var ghy:TClientBlobStream;
OutStream:TFileStream;
begin
DbImage1.Picture.Graphic := nil;
If FileExists('c:\bbb.jpg') Then
If DeleteFile('c:\bbb.jpg')=False Then Exit;
OutStream:=TFileStream.Create('c:\bbb.jpg',fmCreate);
ghy := TClientBlobStream.Create(TBlobField(CDM.QClientDataSet.FieldByName('Image')), bmRead);
PowerArcDecompress(ghy,OutStream,ProgressCallback);//这是一个接压缩过程。
ghy.Free;
OutStream.Free;
DBImage1.Picture.LoadFromFile('c:\bbb.jpg');
end;
这些是用文件流转换成本地文件,它是正确的。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货