Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Перевести принтер в режим Duplex

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
You typically switch a printer to duplex mode by changing its 
TDeviceMode(API: DEVMODE)record .But first you should test whether 
the installed printer driver supports this: 
}
 uses
   printers, winspool;

 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;

 {if it does you can try to switch the duplex mode on before you call 
 richedit.print:}


 var
   Device, Driver, Port: array[0..80] of Char;
   DevMode: THandle;
   pDevmode: PDeviceMode;
   begin
      // Get printer device mode handle. 
    Printer.GetPrinter(Device, Driver, Port, DevMode);
     if Devmode <> 0 then begin
        // lock it to get pointer to DEVMODE record 
      pDevMode := GlobalLock(Devmode);
       if pDevmode <> nil then
       try
         with pDevmode^ do begin
           dmDuplex := DMDUP_VERTICAL;
           dmFields := dmFields or DM_DUPLEX;
         end;
       finally
         // unlock devmode handle. 
        GlobalUnlock(Devmode);
       end;
     end; { If }
   end;
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay