Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.029 c
2-1146596427
HoBBiT.cmp
2006-05-02 23:00
2006.05.21
Запуск из др. папки


3-1143616561
sanich
2006-03-29 11:16
2006.05.21
Ошибка: Size of optimizer block exceeded


3-1143447244
DmitryNekl
2006-03-27 12:14
2006.05.21
Можно ли "сжать" ClientDataSet?


3-1143373341
anubis
2006-03-26 15:42
2006.05.21
Програмноя Установка пути к базе


2-1146644528
Вася
2006-05-03 12:22
2006.05.21
Вычислить время работы




   Наверх