我创建了一个Delphi服务,它负责将QuckReports打印到Printer.Printers列表中包含的特定打印机。我将我的例程传递给打印机名称,并在printer.printers数组中查找以获取正确的索引。然后它会这样做:Delphi打印机。打印机不刷新
QuickRep1.PrinterSettings.PrinterIndex:= iIndex;
在帮助文件中它对printer.refresh说:“当前系统上安装的字体或打印机可能已经改变时调用刷新”。因此,在查找printer.printers数组的打印机名称之前,我先调用刷新。
在我的一个安装中,此功能无法正常工作。如果添加/删除打印机,或者其配置文件下的打印机登录,那么在服务停止并重新启动之前,列表似乎不会刷新。
此功能不适用于服务吗? 发生这种情况的安装使用“虚拟服务”。这可能与它有什么关系?
谢谢。
数组在第一次调用TPrinters.GetPrinters()方法时加载。后续调用不会刷新列表。不过,如果你需要刷新单独的打印机,TPrinter确实有一个Refresh()方法。 – 2009-08-05 00:15:21