procedure SetPrinterSettings(FPrinter: TPrinter);
var
FDevice: PChar;
FDriver: PChar;
FPort: PChar;
DeviceMode: THandle;
DevMode: PDeviceMode;
begin
{to get a current printer settings}
FPrinter.GetPrinter(FDevice, FDriver, FPort, DeviceMode);
{lock a printer device}
DevMode := GlobalLock(DeviceMode);
{set a paper size as A4-Transverse}
if ((DevMode^.dmFields and DM_PAPERSIZE) = DM_PAPERSIZE) then
begin
DevMode.dmFields := DevMode.dmFields or DM_PAPERSIZE;
DevMode^.dmPaperSize := DMPAPER_A4_TRANSVERSE; //DMPAPER_USER;
//DevMode^.dmPaperWidth := 100;
//DevMode^.dmPaperLength := 100;
end;
{set a paper source as Tractor bin}
if ((DevMode^.dmFields and DM_DEFAULTSOURCE) = DM_DEFAULTSOURCE) then
begin
DevMode.dmFields := DevMode.dmFields or DM_DEFAULTSOURCE;
DevMode^.dmDefaultSource := DMBIN_TRACTOR;
end;
{set a Landscape orientation}
if ((DevMode^.dmFields and DM_ORIENTATION) = DM_ORIENTATION) then
begin
DevMode.dmFields := DevMode.dmFields or DM_ORIENTATION;
DevMode^.dmOrientation := DMORIENT_LANDSCAPE;
end;
{set a printer settings}
FPrinter.SetPrinter(FDevice, FDriver, FPort, DeviceMode);
{unlock a device}
GlobalUnlock(DeviceMode);
end;
Procedure Test;
Begin
Drukarka := TPrinter.Create
SetPrinterSettings(Drukarka);
Printer.BeginDoc; //Rozpoczescie drukowania
Printer.EndDoc; //Koniec drukowania
End;
Dlaczego program wywala bład po wykonaniu procedury test??