Hallo,
ich hoffe mir kann jemand mit einer Idee helfen. Ich habe vor langer Zeit mal ein Programm geschrieben welches Datenbankreports via QuickReport Forms erstellt. Damals brauchte ich einen Custom Preview. Das funktioniert auch einwandfrei. Dieses Previewfenster hat auch einen Print button, der einfach nur folgendes macht:
QRPReview1.QRPrinter.Print;
Allerdings kommt dann der Report immer auf dem aktuellen Standarddrucker der Maschine auf der die Exe gerade läuft raus. Nun will ich in der neuen Version das Programm dahin gehend erweitern, dass ich die Ausgaben immer auf einen bestimmten (aber im Windows konfigurierten) Printer ausgebe. Der Name des Printers (wie unter Windows konfiguriert) steht in einem String (sPrinterName). Ich habe versucht, folgenden Code direkt vor dem Aufruf von QRPreview1.QRPrinter.Print auszuführen.
Delphi-Quellcode:
xPrinterNames:=QRPreview1.QRPrinter.Printers;
// if not default printer then search for real printer
if sPrinterName <> '-1' then
for iPrinterIndex:=0 to xPrinterNames.Count-1 do
if xPrinterNames.Strings[iPrinterIndex]= sPrinterName then
QRPreview1.QRPrinter.PrinterIndex:=iPrinterIndex;
Im Debugger sehe ich, dass das Programm zur richtigen Zeit an der letzten Zeile vorbei kommt (richtiger Index). Die Zeile wird auch ohne Fehler ausgeführt. Trotzdem wird nicht der richtige Drucker angesprochen.
Was mache ich falsch?
Bin für jede Idee dankbar.
Matthias