Текущий архив: 2006.05.21;
Скачать: CL | DM;
Вниз
По следам К.Пачеко. Двусторонняя печать Найти похожие ветки
← →
так себе (2006-04-08 16:04) [0]В книге К.Пачеко приводится пример получения информации о принтере. В частности, как узнать поддерживает ли принтер двустороннюю печать. Использую из примера:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Label2: TLabel;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
Device,Driver,Port: array[0..255] of char;
public
{ Public declarations }
procedure GetDuplexSupport;
end;
var
Form1: TForm1;
implementation
uses Printers, WinSpool;
const
NoYesArray: array[Boolean] of string = ("Нет","Да");
var
Rslt: Integer;
{$R *.dfm}
procedure TForm1.GetDuplexSupport;
begin
Rslt := DeviceCapabilitiesA(Device, Port, DC_DUPLEX,nil,nil);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//получаем список доступных принтеров в ComboBox
ComboBox1.Items.Assign(Printer.Printers);
//Принтер по умолчанию
ComboBox1.ItemIndex := Printer.PrinterIndex;
ComboBox1Change(nil);
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
//Выбор принтера
begin
try
Printer.PrinterIndex := ComboBox1.ItemIndex;
GetDuplexSupport;
Label1.Caption := ("Принтер - " + ComboBox1.Items[ComboBox1.ItemIndex] +#13#10 +
"Двусторонняя печать - "+ NoYesArray[Rslt=1]);
except
end;
end;
end.
В системе установлен принтер HP LaserJet 2200 Series, поддерживающий двустороннюю печать, однако с помощью вышеприведенного примера это не определяется. В чем причина?
← →
MBo © (2006-04-08 16:10) [1]Device, Port где заполняются?
Function PrinterSupportsDuplex: Boolean;
Var
Device, Driver, Port: Array [0..255] of Char;
hDevMode: THandle;
Begin
Printer.GetPrinter(Device, Driver, Port, hDevmode);
Result :=
WinSpool.DeviceCapabilities( Device, Port, DC_DUPLEX, Nil, Nil ) <> 0;
End;
← →
так себе (2006-04-08 16:54) [2]
> MBo © (08.04.06 16:10) [1]
Спасибо, всё заработало!
Страницы: 1 вся ветка
Текущий архив: 2006.05.21;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.011 c