unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,printers,inifiles,
StdCtrls;
type
TForm1 = class(Tform)
Label1: Tlabel;
cbPrinters: TComboBox;
procedure FormCreate(Sender: Tobject);
procedure cbPrintersChange(Sender: Tobject);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: Tobject);
begin
//获取打印机列表并显示当前打印机
cbprinters.Items.assign(printer.Printers);
cbprinters.Text :=printer.printers[printer.printerindex];
label1.caption:=printer.Printers[printer.printerindex];
end;
procedure TForm1.cbPrintersChange(Sender: Tobject);
var
Inifile:tinifile;
tempStr1,Tempstr2:string;
s:array[0..64] of char;
begin
with printer do begin
//将选中的打印机作为缺省的打印机
printerindex:=cbprinters.ItemIndex;
tempstr1:=printers[printerindex];
//删除不必要的部分
system.Delete(tempstr1,pos( 'on ',tempstr1),length(tempstr1));
inifile:=tinifile.create( 'WIN.INI ');
try
tempstr2:=inifile.ReadString( 'Device ',tempstr1, ' ');
//改变缺省打印机的名称
inifile.WriteString( 'Windows ', 'Device ',Tempstr1+ ', '+tempstr2);
strcopy(s, 'windows ');
//向所有的窗体发送消息,说明设置已经发生改变
sendmessage(hwnd_broadcast,wm_settingchange,0,longint(@s));
finally
inifile.free;
end;
end;
label1.Caption :=printer.printers[printer.printerind
Delphi 打印实例
最新推荐文章于 2025-06-25 11:46:43 发布