L
lhweast
Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用QUICK REPORT做报表时遇到这样的一个问题:
即我要将报表内容转换成BMP文件,源码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
// 预览报表
quickrep1.Prepare ;
{如果这里写QUICKREP1。PREVIEW,也是一样}
end;
procedure TForm1.Button2Click(Sender: TObject);
var // 转换成BMP
e: TMetaFile;
B: TBitmap;
begin
try
e := quickrep1.QRPrinter.GetPage(1);
B := TBitmap.Create ;
with TMetafileCanvas.Create(E, 0)do
try
B.Height := E.Height;
B.Width := E.Width;
B.Canvas.Draw(0, 0, E);
B.SaveToFile('C:/B.bmp');
finally
Free;
end;
finally
B.Free;
end;
end;
开始运行一两次是没有问题,可是如果一直重复运行(人为的按BUTTON1,再按BUTTON2)时,运行几次后就会提示出错信息“OUT OF SYSTEM RESOURCE”,
不知何缘故,我猜可能是使用PREPARE没有释放资源,可是,如果我换成PREVIEW后,就预览一次,转换一次,然后关闭预览窗口,如果重复多次也是出同
样的提示信息。我还试过使用QUICKREP1。QPRINTER。CLEAR和QUICKREP1。DESTORY等来释放资源,可是问题依旧!
各位兄弟,帮帮我吧! 虽然分不是很多,但如果解决问题,我还可以附加更多的分给你!
我最主要的目的是:将系统自动将报表文件成批的转换成BMP图形,一次性可能上千张,最好是不要出现预览窗口,因为在转换的过程当中,是让系统自动转换。
即我要将报表内容转换成BMP文件,源码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
// 预览报表
quickrep1.Prepare ;
{如果这里写QUICKREP1。PREVIEW,也是一样}
end;
procedure TForm1.Button2Click(Sender: TObject);
var // 转换成BMP
e: TMetaFile;
B: TBitmap;
begin
try
e := quickrep1.QRPrinter.GetPage(1);
B := TBitmap.Create ;
with TMetafileCanvas.Create(E, 0)do
try
B.Height := E.Height;
B.Width := E.Width;
B.Canvas.Draw(0, 0, E);
B.SaveToFile('C:/B.bmp');
finally
Free;
end;
finally
B.Free;
end;
end;
开始运行一两次是没有问题,可是如果一直重复运行(人为的按BUTTON1,再按BUTTON2)时,运行几次后就会提示出错信息“OUT OF SYSTEM RESOURCE”,
不知何缘故,我猜可能是使用PREPARE没有释放资源,可是,如果我换成PREVIEW后,就预览一次,转换一次,然后关闭预览窗口,如果重复多次也是出同
样的提示信息。我还试过使用QUICKREP1。QPRINTER。CLEAR和QUICKREP1。DESTORY等来释放资源,可是问题依旧!
各位兄弟,帮帮我吧! 虽然分不是很多,但如果解决问题,我还可以附加更多的分给你!
我最主要的目的是:将系统自动将报表文件成批的转换成BMP图形,一次性可能上千张,最好是不要出现预览窗口,因为在转换的过程当中,是让系统自动转换。