初学dephi,想知道怎么设置缺省打印机,我只知道该用Tprinter类

luh 2005-01-28 11:00:10
哪位哥哥给我个详细例子阿
...全文
116 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
winefish 2005-02-02
  • 打赏
  • 举报
回复
printerindex:=printers[i];
web700 2005-02-02
  • 打赏
  • 举报
回复
可怜的, 你发到非技术区谁能看到
lyguo 2005-02-02
  • 打赏
  • 举报
回复
UP
langziwujia007 2005-02-02
  • 打赏
  • 举报
回复
设置默认打印机 代码如下:
窗体上有个TComBox,命名为cb1

窗体名为Form1

procedure TForm1.FormCreate(Sender: TObject);

begin

cb1.items.assign(printer.printers);

end;

procedure TForm1.Button1Click(Sender: TObject);

var LPrinter:string;

PrinIniFile:Tinifile;

LStr:string;

begin

LStr:=printer.Printers[cb1.itemindex];

delete(Lstr,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;

end;

end;

***********************

uses printers;

 

procedure SetDefaultPrinter(const printerindex:integer);

Var

FHandle : THandle;

HPrt : THandle;

PrtInfo5: PPrinterInfo5;

FDevice: array[0..79] of char;

FDriver: array[0..79] of char;

FPort: array[0..79] of char;

begin

{printerindex为选中打印机的索引,如果使用打印机名称,则此句可忽略}

Printer.PrinterIndex := printerindex;

Printer.GetPrinter (FDevice, FDriver, FPort, FHandle);

OpenPrinter(FDevice, HPrt, nil);

if HPrt = 0 then

raise(Exception.Create('不能打开打印机'));

try

PrtInfo5 := GetPrinterInfo5(HPrt);

PrtInfo5.Attributes := PrtInfo5.Attributes +

PRINTER_ATTRIBUTE_DEFAULT;

SetPrinter(HPrt,5,PrtInfo5,PRINTER_CONTROL_SET_STATUS);

FreeMem(PrtInfo5);

finally

ClosePrinter(HPrt);

end;

end;

lanpa007 2005-02-02
  • 打赏
  • 举报
回复
帮助顶
  • 打赏
  • 举报
回复
看看帮助吧!

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧