So,
nun klappt's, ohne Fehlermeldungen.
Warum nun plötzlich weiß ich aber auch nicht
Mein eigentliches Problem waren wechselnde Papierformate (Etikettendrucker).
So hat es dann geklappt:
Code:
uses [....], printers, winspool;
procedure tEditLager.Papierformat;
var
Device, Driver, Port: array[0..80] of Char;
DevMode: THandle;
pDevmode: PDeviceMode;
begin
Printer.GetPrinter(Device, Driver, Port, DevMode);
Printer.SetPrinter(Device, Driver, Port, 0) ;
Printer.GetPrinter(Device, Driver, Port, DevMode);
If Devmode <> 0 Then Begin
pDevMode := GlobalLock( Devmode );
If pDevmode <> Nil Then
try
With pDevmode^ Do Begin
{ dmPapersize := DMPAPER_A4;
dmFields := dmFields or DM_PAPERSIZE; }
dmPapersize := DMPAPER_USER;
dmPaperLength := 140;
dmPaperwidth := 800;
dmFields := dmFields or DM_PaperSize or DM_PAPERLength or dm_paperWidth;
End;
finally
GlobalUnlock( Devmode );
end;
End; { If }
end;