Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Копирование изображения [D7, D2005, XP]


Василий ©   (2006-06-02 06:30:00) 

Доброго времени суток, уважаемые мастера.
Подскажите пожалуйста как можно осуществить следующее.
У меня имеется форма на весь экран. И компонент Image в который загружена картинка превышающая размеры экрана(электрическая схема). Следовательно на форме появляется полоса прокрутки. Также на форме размещены метки (TLabel) которые после всех моих вычислений отбражают перетоки и напряжения на указанной картинке.
И вот теперь проблема: по нажатию на Button я копирую изображение с формы (form.canvas) в Clipboard подставляя размеры загруженной картинки, у меня копируется все что видно на экране (это и кнопка пуск с ее панелью, и верхняя часть экрана), а мне надо чтобы было изображение схемы с нанесенными на нее Tlabel для дальнейшей распечатки в Word/PPoint.

Подскажите пожалуйста как можно решить эту задачу.

С уважением, Василий.


Василий   (2006-06-04 00:55:00) [1]

Прошу прощения но есть несколько "но":
Если использовать TImage, то во временную переменную TBitmap будет скопировано только изображение Timage  без меток, проверял.
Если вместо  TLabel использовать Canvas.TextOut, то у меня очень много, к сожалению, меток (а осуществлять подборку координат для большлго количества параметров немного сожнее станет), но все равно попробую.

Кстати, родилась идея: а можно ли скажем клиентскую часть всей формы( даже если она выходит за пределы разрешения экрана) в виде пикселов преобразовать в векторную или битовую матрицу изображения. Тогда согласно логике все элементы, находящиеся в клиентской части формы, должны будут оказаться в  "изображении" матрицы. А после чего можно будет вывести на печать.  Если такое возможно, не могли бы Вы подсказать, как это можно организовать или указать ссылку где подобная тема рассмотрена.

С уважением, Василий.


Loginov Dmitry   (2006-06-03 09:05:00) [2]

Вместо TForm используй TImage
Вместо TLabel используй Canvas.TextOut


MBo   (2006-06-03 06:53:00) [3]

>Разве метод TForm.PaintTo правильно скопирует все то что находится на форме, включая то что скрыто за ползунками

Я ответил на заданный вопрос о копировании с нанесенными TLabel.
А правильно это для твоего случая или нет - проверь.


Василий   (2006-06-03 06:19:00) [4]

Прошу прощения, но немного не понятно(так как начинающий). Я использовал метод Copyrect в Bitmap. Разве метод TForm.PaintTo правильно скопирует все то что находится на форме, включая то что скрыто за ползунками (без всяктх кнопок пуск и т.д.) .....

Если можно чуточку по подробнее, пожалуйста.

С уважением, Василий.


MBo   (2006-06-02 07:28:00) [5]

Используй TForm.PaintTo для копирования в битмап.


Наверх

Титульная страница Поиск, карта сайта Написать письмо