Autor Beitrag
Coolman1974
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: So 14.10.07 13:25 
Hallo zusammen.

Ich verwende folgende Funktion um das Papierformat des Standarddruckers zu ermitteln:

ausblenden 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..255of 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 ???