Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.027 c
15-1146057540
rolex2002
2006-04-26 17:19
2006.05.21
Как удалить системные точки восстановления?


15-1146032967
Alex.
2006-04-26 10:29
2006.05.21
Конвертирование фотографий в DVD фильм.


2-1146474009
Ded22
2006-05-01 13:00
2006.05.21
SQL Запрос !


15-1145781398
ArtemESC
2006-04-23 12:36
2006.05.21
Помогите перевести...


1-1144993529
Layner
2006-04-14 09:45
2006.05.21
Как включить меню в D7 WebDeploy