1. The Printer object has a PrinterIndex property, which you can use it to change the active printer in your application. The Printers property of this object contains list (TStrings) of available printers.
2. Download Print Preview Component and look for implementation of SetPrinterOptions method.