Hallo zusammen.
Ich verwende folgende Funktion um das Papierformat des Standarddruckers zu ermitteln:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| function GetPapierformat: Integer; var Dev, Drv, Prt: array[0..255] of Char; DM1: PDeviceMode; DevM: THandle; begin Result := 0;
Printer.PrinterIndex := -1; Printer.GetPrinter(Dev, Drv, Prt, DevM); DM1 := GlobalLock(DevM);
if DM1 <> nil then try with DM1^ do begin dmFields := dmFields or DM_PAPERSIZE; Result := dmPapersize; end; finally GlobalUnlock(DevM); end; end; |
Das Problem ist "nur", dass das Papierformat immer das gleiche bleibt, wenn ich z.B. innerhalb einer
Textdatei die Druckfunktion aufrufe, das Papierformat ändere und drucke.
Stelle ich dagegen die "richtigen" Eigenschaften (z.b: Systemsteuerung) des Druckers auf ein anderes Papierformat, so wird dieses immer erkannt.
Nun möchte ich aber nicht immer die Druckereinstellungen ändern, befor ich aus einer Anwendung drucken kann damit das Papierformat richtig erkannt wird.
Hat jemand eine Idee ???