本人初学DELPHI,不悉,现遇到个问题,望高手指点,先谢过! while not DBGrid.DataSource.DataSet.Eof do
begin
Printer.BeginDoc;
panduan:=1; for i:=1 to total do
begin
ret_p:=StretchBlt(Printer.Canvas.Handle, SrcRect.Left,SrcRect.Top,SrcRect.Right,SrcRect.Bottom, Bitmap.Canvas.Handle, 0, 0, Bitmap.Width,Bitmap.Height, SRCAND); if ret_p=false then
begin
showmessage('打印图像失败,系统将自动重新打印这一张,请确认!');
printer.Abort;
panduan:=0;
break;
end;
end; if panduan<>0 then
begin
printer.EndDoc;
DBGrid.DataSource.DataSet.Next;
end; end;
出现问题是这样的:当ret_p=false时,我取消当前打印命令,printer.Abort,返回while循环重新打印这一张.但是重新打印这张时,打印机说无法打印,并且打印机大小一栏中为64K/1.96M,是不是我没有释放printer什么东西呢?望高手指点,万分感谢!!!
begin
Printer.BeginDoc;
panduan:=1; for i:=1 to total do
begin
ret_p:=StretchBlt(Printer.Canvas.Handle, SrcRect.Left,SrcRect.Top,SrcRect.Right,SrcRect.Bottom, Bitmap.Canvas.Handle, 0, 0, Bitmap.Width,Bitmap.Height, SRCAND); if ret_p=false then
begin
showmessage('打印图像失败,系统将自动重新打印这一张,请确认!');
printer.Abort;
panduan:=0;
break;
end;
end; if panduan<>0 then
begin
printer.EndDoc;
DBGrid.DataSource.DataSet.Next;
end; end;
出现问题是这样的:当ret_p=false时,我取消当前打印命令,printer.Abort,返回while循环重新打印这一张.但是重新打印这张时,打印机说无法打印,并且打印机大小一栏中为64K/1.96M,是不是我没有释放printer什么东西呢?望高手指点,万分感谢!!!
解决方案 »
- IdHttp控件,如何设置代理域
- 如何理解这个函数的定义function SumAll (const Args: array of const): Extended;
- 如何使widestring转成string格式?
- 高分提问:如何修改文件中的内容
- 请问各位:调用CMD后如何在delphi程序中关闭呢?(分用完了,不好意思,再补上)
- 问一下
- 夸克兄请进来2
- 取出ntext类型字段的值??
- 怎样访问继承自对象类型Object中的方法或成员
- 国外一款远程管理软件编译后出错,第一次见,高手围观,求解决!!!
- 请问两TDateTime类型T1,T2,T1比T2早一秒,什么用T2表示T1?
- 做了一个类似于QQ热键的东西。但修改一个热键后。怎么注销掉前一个热键呢?
Break语句是用于跳出循环的,当一个循环没有达到循环结束的条件并要结束循环时,才使用Break;
你这并不是要结束循环吧~改为Continue
同时把 i 自减 ~~~dec(i);试试~~~~