起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 151|回复: 6

【结贴】打印的时候报错!**

[复制链接]
发表于 2008-8-26 16:18:46 | 显示全部楼层 |阅读模式
请问我运行到下面代码的时候出现这个错误是怎么回事?运行到红色部分就报这个错误了
代码如下:
Business.Forms.Printers.Printer.PrinterIndex :=i;
  Business.Forms.Printers.Printer.GetPrinter (Device, Driver, Port, hDeviceMode);
  Business.System.SysUtils.StrCopy (s, Device);
  Business.System.SysUtils.StrCat (s, ',');
  Business.System.SysUtils.StrCat (s, Driver);
  Business.System.SysUtils.StrCat (s, ',');
  Business.System.SysUtils.StrCat (s, Port);
  Borland.Delphi.Windows.WriteProfileString ('windows', 'device', s);
  Business.System.SysUtils.StrCopy(s, 'windows');
  Borland.Delphi.Windows.SendMessage (Borland.Delphi.Windows.HWND_BROADCAST,
    Borland.Delphi.Messages.WM_WININICHANGE, 0, 0);

1.jpg

10.21 KB, 下载次数: 99

回复

使用道具 举报

 楼主| 发表于 2008-8-26 16:25:16 | 显示全部楼层
而且我本来系统设置好一个默认打印机,运行这段代码后可以正常更换默认打印机,但是关闭窗口后,系统的默认打印机就被取消掉了,没有一台机子有这个默认打印机。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-26 17:00:08 | 显示全部楼层
更新一下
回复 支持 反对

使用道具 举报

发表于 2008-8-26 17:05:51 | 显示全部楼层
X3中的Printer.GetPrinter函数好像不太好用.  包装成第三方控件用吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-26 17:08:50 | 显示全部楼层
有没有现成的组件或者控件啊?可以介绍一下吧?
回复 支持 反对

使用道具 举报

发表于 2008-8-26 17:20:52 | 显示全部楼层
用这个
var
  LPrinter:string;
  PrinIniFile:Tinifile;
  LStr:string;
begin
  LStr:=Business.Forms.Printers.printer.Printers[0];
  StringUtils.delete(Lstr,StringUtils.pos('on',Lstr),Length(LStr));
  PrinIniFile:=TIniFile.Create('WIN.ini');
  try
    LPrinter:=PrinIniFile.ReadString('Devices',LStr,'');
    PrinIniFile.writestring('windows','device',LStr+','+LPrinter);
  finally
    PrinIniFile.free;
    Borland.Delphi.Windows.SendMessage (Borland.Delphi.Windows.HWND_BROADCAST,
      Borland.Delphi.Messages.WM_SETTINGCHANGE, 0, 0);
  end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-26 17:41:13 | 显示全部楼层
好了 谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-21 03:23 , Processed in 0.046366 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表