原本是一个grid中显示一些数据,没有问题
后来在grid上显示图片之后,刷新几次就有错误提示“存储空间不足...”的错误图片是从数据库读取的,从一个流中获得
function GetGraphFromStream(AStream: TStream; AImageType: string): TGraphic;
var
APng: TPNGObject;
AJpeg: TJPEGImage;
begin
Result := nil;
if AStream.Size = 0 then Exit; AStream.Position := 0;
if AImageType = '.jpg' then
begin
AJpeg := TJPEGImage.Create;
try
AJpeg.LoadFromStream(AStream);
Result := AJpeg;
except
on E: Exception do
begin
Exit;
end;
end;
end
else if AImageType = '.png' then
begin
APng := TPNGObject.Create;
try
APng.LoadFromStream(AStream);
Result := APng;
except
on E: Exception do
begin
Exit;
end;
end;
end;
end;然后通过btimap的assign方法,将结果赋给bitmap并且最终显示,同时会将结果free掉如此而已,请指教
后来在grid上显示图片之后,刷新几次就有错误提示“存储空间不足...”的错误图片是从数据库读取的,从一个流中获得
function GetGraphFromStream(AStream: TStream; AImageType: string): TGraphic;
var
APng: TPNGObject;
AJpeg: TJPEGImage;
begin
Result := nil;
if AStream.Size = 0 then Exit; AStream.Position := 0;
if AImageType = '.jpg' then
begin
AJpeg := TJPEGImage.Create;
try
AJpeg.LoadFromStream(AStream);
Result := AJpeg;
except
on E: Exception do
begin
Exit;
end;
end;
end
else if AImageType = '.png' then
begin
APng := TPNGObject.Create;
try
APng.LoadFromStream(AStream);
Result := APng;
except
on E: Exception do
begin
Exit;
end;
end;
end;
end;然后通过btimap的assign方法,将结果赋给bitmap并且最终显示,同时会将结果free掉如此而已,请指教
解决方案 »
- DBCtrlGrid如何调整每一行的高度?(DBCtrlGrid与DBGrid在同一页)
- 出售源码!!!
- “贺岁华东行”--与技术总监和Borland产品专家面对面2004元旦期间课程简介
- 错误提示:'array type requied'怎么回事呢?
- 急求报表源程序,给分!!!
- 请问后缀名为 .bdsproj 的是什么语言编写的文件
- 如何在delphi里嵌套汇编?急!???。。。。。。。。。。。。。
- StringGrid有否单击某一列的特定一个单元格的事件?
- 急急!!我在使用Tjpegimage时总出现错误 !!!!!
- 那里能下载到Delphi在数据库方面的入门书籍!!
- 各位朋友,帮忙看看坐标转换的问题,我的目的是实现缩放的功能,但是无法实现?
- 请问如何用一个定义一个TStringlist类型或者其他数组函数获取XML中class下的各元素的值????又如何调用呢?急急急啊!!!
var
APng: TPNGObject;
AJpeg: TJPEGImage;
begin
Result := nil;
if AStream.Size = 0 then Exit; AStream.Position := 0;
if AImageType = '.jpg' then
begin
AJpeg := TJPEGImage.Create;
try
try
AJpeg.LoadFromStream(AStream);
Result := AJpeg;
except
on E: Exception do
begin
Exit;
end;
end;
finally
AJpeg.Free; //这个要释放
end;
end
else if AImageType = '.png' then
begin
APng := TPNGObject.Create;
try
try
APng.LoadFromStream(AStream);
Result := APng;
except
on E: Exception do
begin
Exit;
end;
end;
finally
APng.free;///同样要释放
end;
end;
end;
这个APng或者AJpeg是我通过result传递出去的部分,如果在方法里面释放,那么传递出去的result还正常?我的释放是放在转换成bitmap之后AGraph = GetGraphFromStream(AStream, AImageType);
ABitmap.assing(AGraph);
AGraph.free;