Impressao - trocando a porta em runtime

Top  Previous  Next

uses Printers;

 

{$IFNDEF WIN32}

 const MAX_PATH = 144;

{$ENDIF}

 

procedure TForm1.Button1Click(Sender: TObject);

var

  pDevice : pChar;

  pDriver : pChar;

  pPort   : pChar;

  hDMode : THandle;

  PDMode : PDEVMODE;

begin

  if PrintDialog1.Execute then begin

    GetMem(pDevice, cchDeviceName);

    GetMem(pDriver, MAX_PATH);

    GetMem(pPort, MAX_PATH);

    Printer.GetPrinter(pDevice, pDriver, pPort, hDMode);

    Printer.SetPrinter(pDevice, PDriver, 'FILE:', hDMode);

    FreeMem(pDevice, cchDeviceName);

    FreeMem(pDriver, MAX_PATH);

    FreeMem(pPort, MAX_PATH);

    Printer.BeginDoc;

    Printer.Canvas.TextOut(100100'Delphi Is RAD!');

    Printer.EndDoc;

  end;

end;