Respecting user printer selections before printing a preview.



Sample code -
Printing from the preview or after a 'Prepare'
==============================================
These changes force the saved metafile to be printed by the current printer object,
which is selected and setup by a standard print dialog. All the users settings are 
respected by the printer, including the paper dimensions, 2 per page, paper source,
resolution, collation, copies and orientation.
The new method PrintMetafileDirect may be called after a prepare like this -
quickrep1.prepare;
// you can call a printer dialog here ...
quickrep1.qrprinter.PrintMetafileDirect( 1, 6 ); // for instance.
After pasting in these changes, rebuild the libraries as described here
www.quickreport.co.uk/building.html
Changes in QRPrntr.pas
----------------------
First, move the property 'aPrinterSettings' of TQRPrinter
to the Public properties ( file qrprntr.pas).
1. Add this new public method.
Declare it here in the TQRPrinter class definition
..
..
  public
    // standard printer
{$ifdef VER36PRO}
    constructor Create( ParentRep : TObject );
{$else}
    constructor Create;
{$endif}
    destructor Destroy; override;
    // **** new method
    procedure PrintMetafileDirect( frompage, topage : integer);
    function GetPage(Value : integer) : TMetafile;
Add code body anywhere after implementation
// Called from the preview, prints the saved metafile direct to 'printer'
procedure TQRPrinter.PrintMetafileDirect( frompage, topage : integer);
var
     pagefile : TMetafile;
     i : integer;
     qrpr : TQRPrint