Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];

Вниз

Печать изображения в 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.007 c
15-1276584640
Неокубинец
2010-06-15 10:50
2010.09.12
Автоматизированный загрузчик


15-1276415015
AKE
2010-06-13 11:43
2010.09.12
Какое правильно "перевести"...


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


2-1275988122
worldmen
2010-06-08 13:08
2010.09.12
Структура файлов караоке - kar. Или как извлеч текст


15-1276613528
bss
2010-06-15 18:52
2010.09.12
Забавная конвертация в variant е





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский