我使用QReport做报表、打印。使用的是网络打印机。
   程序运行后,如果默认的网络打印机没有准备就绪、或者是网线没插好时,点击“预览”后,就会提示出错,提示信息如下:
   Access violation at address 77f49957.Write of address 001a9000
   
   我奇怪的是打印机不是由windows自己管理的吗,为什么找不到打印机的时候,会向上面那样提示访问了无效的内存地址呢?这个错误改如何改呢?
   另外,当默认的网络打印机准备就绪时,预览和打印都是正常的。

解决方案 »

  1.   

    我也是用QReport做报表、打印。使用的是网络打印机。但不会出现这种情况!嘿嘿...
      

  2.   

    用try
    except
    end;
    捕捉该错误并处理
      

  3.   

    :(
    我用的就是try
    郁闷中!!!!
      

  4.   

    也是用QReport做报表、打印,我没有发现同样的问题
      

  5.   

    function GetPrinterStatus:byte; 
    asm 
      MOV DX,$379; 
      IN AL,DX; 
    end; 
    //获取打印机是否出错 
    function CheckPrinter:boolean; 
    var 
      temp:byte; 
    begin 
      temp:=GetPrinterStatus; 
      Result:=not ( ((temp and $80)=0) //打印机忙 
      or ((temp and $20)<>0)  //打印机缺纸 
      or ((temp and $10)=0)    //打印机未联机 
      or ((temp and $08)=0) ); //打印机出错; 
    end;