首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

打印出错,getlasterror=6,详细内容请进.该如何解决

2012-02-29 
打印出错,getlasterror6,详细内容请进.varts:Tprinters:stringbegintrys:inputbox( 提示 , hi ,)ifs

打印出错,getlasterror=6,详细内容请进.
var
  ts:Tprinter;
  s:string;
begin
  try
  s:=inputbox( '提示 ', 'hi ', ' ');
  if   s= ' '   then   exit;
  ts:=Tprinter.Create;
  ts.BeginDoc;
  //textout(p.Handle,50,69,pchar( 'sdfsdf '),6);  
  ts.Canvas.TextOut(0,0, 's ');
  ts.EndDoc;
  ts.Free;
  except
    showmessage(inttostr(getlasterror));
  end;
//===========
程序如上,在2003上表现正常,在2000中单独编写为程序时正常,这段代码放入另外一个程序时报错,经检测是ts.beginDoc   这行代码,getlasterror=6   无效句柄.

用api     textout   同样如此,到底那里错了啊?

[解决办法]
用writetofile试试
把端口看成文件
[解决办法]
没有必要这样打印吧?

直接打印就行了

为何要 ts:=Tprinter.Create?

printer.Canvas.TextOut(0,0, 's ') 就可以。

[解决办法]
uses Printers;单元的时候
直接用Printer就行了,不用再手工去创建;
他的定义是:
function Printer: TPrinter;
begin
if FPrinter = nil then FPrinter := TPrinter.Create;
Result := FPrinter;
end;
[解决办法]
要么直接uses Printers,要么检查你的那个出错的程序里去掉uses Printers看看

热点排行