PrintDialog HELP (Delphi 1)

I have a problem with the PrintDialog in Delphi 1: if I print without
changing any parameter everything works OK. But if I change the
resolution of the printer (or select another printer with different
resolution) the printout comes out with huge or microscopic characters.

   I even tried with a minimal program (see below); apparently the
Canvas is not updated when I change the resolution in the PrintDialog.
The only way to make it work is to exit my application, modify the print
resolution in Control Panel|Printers, then restart my
application.              

   I've been told this is a bug in Delphi's PrintSetup, but also there
should be a way to work around the problem. Can you help?

Thanks in advance!

Massimo

implementation

{$R *.DFM}

PROCEDURE Printit;
BEGIN
  Printer.BeginDoc;
  Printer.Canvas.Font.Name := 'Arial';
  Printer.Canvas.Font.Size := 32;
  Printer.Canvas.TextOut (150, 100, 'Hello, World!');
  Printer.EndDoc;
END;

procedure TForm1.Button1Click(Sender: TObject);
begin
  IF PrintDialog1.Execute THEN printit;
end;

end.