Mega Code Archive

 
Categories / Delphi / Printing
 

Bring up a printers properties dialog

Title: bring up a printer's properties dialog? { If you need to create your own printer dialog, you can use the PrinterProperties API function to bring up a printer's properties dialog. } uses WinSpool, Printers; procedure TForm1.Button1Click(Sender: TObject); const { The TPrinterDefaults structure specifies the default data type, environment, initialization data, and access rights for a printer. } Defaults: TPrinterDefaults = (pDatatype: nil; pDevMode: nil; DesiredAccess: STANDARD_RIGHTS_REQUIRED or PRINTER_ACCESS_USE); var hPrinter: THandle; Device: array[0..255] of char; Driver: array[0..255] of char; Port: array[0..255] of char; hDeviceMode: THandle; RetVal: Boolean; begin Printer.PrinterIndex := Combobox1.ItemIndex; { Retrieve information about the specified printer } Printer.GetPrinter(Device, Driver, Port, hDeviceMode); { Retrieve a handle identifying the specified printer or print } if not OpenPrinter(@Device, hPrinter, @Defaults) then RaiseLastWin32Error; try { Display a printer-properties property sheet for the specified printer } PrinterProperties(Handle, hPrinter); finally { Close the specified printer object } ClosePrinter(hPrinter); end; end; procedure TForm1.FormCreate(Sender: TObject); begin { Show available printers in a Combobox } Combobox1.Items := Printer.Printers; Combobox1.ItemIndex := 0; end;