Показать сообщение отдельно
  #1  
Старый 11.12.2011, 23:06
KarlMarks KarlMarks вне форума
Прохожий
 
Регистрация: 17.03.2010
Сообщения: 2
Репутация: 10
По умолчанию Delphi 7. Почему на одном компе содержимое Image1.Canvas печатается, а на другом нет?

То есть, код на компе с Windows 7 (разрешение экрана 1366*768) выполняется как надо, а на компе с Windows XP (разрешение экрана 1024*768) принтер выдает чистый лист. Принтер в обоих случаях используется один и тот же.
Код:
uses Printers;


***********

procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Canvas.TextOut(10,10,'ПРОВЕРКА');
end;

procedure TForm1.Button1Click(Sender: TObject);
  var
    ScaleX, ScaleY: Integer;
    R: TRect;
  begin
    Printer.BeginDoc; 
    with Printer do
      try
        ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
        ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
        R := Rect(0, 0, Image1.Picture.Width * ScaleX,
        Image1.Picture.Height * ScaleY);
        Canvas.StretchDraw(R, Image1.Picture.Graphic); 
      finally
        EndDoc; 
      end;
  end;
end.
Ответить с цитированием