whats new ¦  programming tips ¦  indy articles ¦  intraweb articles ¦  informations ¦  links ¦  interviews
 misc ¦  tutorials ¦  Add&Win Game

Tips (1541)

Database (90)
Files (137)
Forms (107)
Graphic (114)
IDE (21)
Indy (5)
Internet / LAN (130)
IntraWeb (0)
Math (76)
Misc (126)
Multimedia (45)
Objects/
ActiveX (51)

OpenTools API (3)
Printing (35)
Strings (83)
System (266)
VCL (242)

Top15

Tips sort by
component


Search Tip

Add new Tip

Add&Win Game

Advertising

51 Visitors Online


 
...bring up a printer's properties dialog?
Autor: Thomas Stutz
[ Print tip ]  

Tip Rating (8):  
     


{
  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;

 

Rate this tip:

poor
very good


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