Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.09.12;
Скачать: CL | DM;

Вниз

Печать изображения в ScrollBox   Найти похожие ветки 

 
KiLLiR ©   (2009-04-17 21:48) [0]

Всем доброго времени суток. Прошу помочь с проблемой.
У меня на форме находится ScrollBox, на нем лежит Image, который может масштабироваться с помощью TrackBar. Когда Image стает больше, чем ScrollBox, соответственно появляются полосы прокрутки. Также на форме находится кнопка Печать. Я хочу чтобы при нажатии на кнопку часть картинки, которая на данный момент в зоне видимости распечатывалась на ВЕСЬ!!! лист бумаги.
Сейчас я использую следующий код:


procedure TMain.Pechat_BitBtnClick(Sender: TObject);
begin
PrintDlg:=TPrintDialog.Create(Owner);
if PrintDlg.Execute then
begin
  Printer.BeginDoc;
  Printer.Canvas.Refresh;
  ScrollBox1.PaintTo(Printer.Handle,10,10);
end;
PrintDlg.Free;
end;


Естественно изображение на бумаге получается маленьким из-за разницы в разрешениях монитора и принтера.
Функция GetDeviceCaps мне известна. Пытался сделать через CopyRect - не вышло тоже, там через Image надо делать - куски его копировать, но это имеет смысл только при постоянных размерах Image"а, а он масштабируется и вычислить координаты прямоугольника я уже никак не смог.
Кто еще что может предложить, посоветуйте пожалуйста.
Заранее спасибо.


 
ZZTop24   (2009-04-17 23:49) [1]

Получаешь DC ScrollBox1 и делаешь StretchBlt на канву принтера. Разве что возня с отношениями, а поле просмотра тоже вычислить просто.



Страницы: 1 вся ветка

Текущий архив: 2010.09.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
2-1273666789
Igor_VM
2010-05-12 16:19
2010.09.12
Обмен сообщениями в формате XML по протоколу HTTPS


2-1276392661
DROWSY
2010-06-13 05:31
2010.09.12
Если TIBDataSet - набор из нескольких связанных таблиц...


15-1276679561
vajo
2010-06-16 13:12
2010.09.12
диски для raid


15-1275932643
test
2010-06-07 21:44
2010.09.12
База данных Delphi?


2-1276534233
akosh12345
2010-06-14 20:50
2010.09.12
Вывод кнопок динамически