was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews
 sonstiges ¦  tutorials ¦  Add&Win Gewinnspiel

Tips (1541)

Dateien (137)
Datenbanken (90)
Drucken (35)
Grafik (114)
IDE (21)
Indy (5)
Internet / LAN (130)
IntraWeb (0)
Mathematik (76)
Multimedia (45)
Oberfläche (107)
Objekte/
ActiveX (51)

OpenTools API (3)
Sonstiges (126)
Strings (83)
System (266)
VCL (242)

Tips sortiert nach
Komponente


Tip suchen

Tip hinzufügen

Add&Win Gewinnspiel

Werbung

32 Visitors Online


 
...einen Drucker auf Duplex einstellen?
Autor: P. Below
[ Tip ausdrucken ]  

Tip Bewertung (28):  
     


{
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, nilnil) <>
    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;

 

Bewerten Sie diesen Tipp:

dürftig
ausgezeichnet


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners