【问题标题】:CloseFile command on printers doesn't print打印机上的 CloseFile 命令不打印
【发布时间】:2021-05-14 03:32:18
【问题描述】:

我使用此代码制作了一个示例应用程序,它适用于所有打印机 - USB、网络等:

AssignPrn(lOutputFile);
Rewrite(lOutputFile);

for liIndex := 0 to lsLines.Count-1 do
    Writeln(lOutputFile, lsLines[liIndex]);

CloseFile(lOutputFile);

在示例应用程序中的CloseFile(lOutputFile); 上,控制进入VCL 文件,并且打印工作。

当我将此代码集成到主应用程序中时,在CloseFile(lOutputFile) 上,控制以dxPSPopupManKeyboardHook 方法进入DevExpress 文件,并且没有打印。

两个应用使用相同的 IDE 设置,uses 子句也相同。

【问题讨论】:

  • 您应该在这个 q 中添加一个minimal, reproducible example,尤其是因为它显然涉及一个 3rd 方 (Devex) 库。在那之前,我会投票关闭它。
  • 如果在包含CloseFile 的Delphi 单元之后声明DevExpress 单元,则使用DevExpress 版本!在 CloseFile 之前将 Delphi 单元名称和一个点一起写入以强制执行正确的调用。

标签: delphi devexpress vcl


【解决方案1】:

要选择正确的函数,请使用完全限定名称:

AssignPrn(lOutputFile);
Rewrite(lOutputFile);

for liIndex := 0 to lsLines.Count-1 do
    Writeln(lOutputFile, lsLines[liIndex]);

System.CloseFile(lOutputFile);   // <===== FULLY QUALIFIED NAME

【讨论】:

  • @poonam 如果我的回答解决了您的问题,请将其标记为“已接受”(答案左侧的勾号)。只有你能做到。这就是 StackOverflow 的工作原理。谢谢。
  • @poonam 如果我的答案解决了您的问题,我可以坚持将我的答案标记为已接受吗?如果它没有解决,请添加评论以解释为什么它没有解决您的问题。善用 StackOverflow 是获得好答案的关键。
猜你喜欢
  • 1970-01-01
  • 2019-01-27
  • 2022-01-04
  • 1970-01-01
  • 2021-08-14
  • 2017-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多