var FDevice, FDriver, FPort:array [0..255] of char; DeviceMode,HPrt:THandle;DevMode:PDeviceMode; begin Printer.GetPrinter(FDevice, FDriver, FPort, DeviceMode); DevMode := GlobalLock(DeviceMode); OpenPrinter(FDevice, HPrt, nil); begin DevMode^.dmFields := DevMode^.dmFields or dm_paperlength; DevMode^.dmPaperLength := trunc((Sender as TCustomQuickRep).Page.Length); DevMode^.dmFields := DevMode^.dmFields or dm_paperwidth; DevMode^.dmPaperWidth := trunc((Sender as TCustomQuickRep).Page.Width); DevMode^.dmFields := DevMode^.dmFields or dm_papersize; DevMode^.dmPaperSize := DMPAPER_USER; end; SetPrinter(HPrt,2,DeviceMode,PRINTER_CONTROL_SET_STATUS);
DocumentProperties(DeviceMode,HPrt,FDevice,DevMode^,DevMode^,DM_IN_BUFFER or DM_UPDATE); GlobalUnlock(DeviceMode); ClosePrinter(HPrt); end;
|