суббота, 19 декабря 2009 г.

Работа с принтером и сканером в HiAsm

Эта статья предназначена в основном для тех, у кого есть эти устройства. Но остальным тоже полезно почитать статью, ведь программу можно делать не только для себя, а для других, у кого принтер и сканер есть.

Итак, начнём со сканера. Думаю, все знают, что сканер нужен для получения снимка с печатных носителей, например книг, бумаг и т. д. Компонент для работы со сканером находится в HiAsm на вкладке "Система", в группе "Устройства". У него немного точек и параметров, и работать с ним легко.

Для пробы компонента сканер у вас должен быть включен. Итак, ставим компонент TWAIN на рабочее поле HiAsm и смотрим на его точки. Первый метод - doSelectSource - предназначен для выбора источника сканирования. Пока сканер у вас не подключен, окно, открывающееся при вызове этого метода, пусто. Но когда устройство (или устройства, если их несколько) работает, то вы сможете выбрать нужное вам.

А дальше остаётся только метод doScan - сканирование. Однако перед этим нужно решить, отображать ли окно с настройками вашего устройства. Это определяется либо параметром ShowUI, либо одноимённой точкой данных (см. вкладку "Точки"). Окно с настройками будет выводиться при вызове метода doScan, и в нём пользователь сможет выбрать нужные параметры сканирования, например, какой участок стекла сканера сканировать.


Если же вы решили не показывать это окно, то сканирование будет производиться сразу, и на событие onScan будет выдаваться снимок всего стекла сканера. Вот вам пример.



Дополнительно у компонента есть точки свойств Height и Width - они содержат оригинальные размеры отсканированной картинки.

Теперь перейдём к печати. Это будет интересно тем, кто не раз задавался вопросом: как распечатать картинку на принтере через HiAsm? Сегодня я покажу, как печатать картинки через HiAsm.

Но для начала установим компонент Printer на рабочее поле (он находится рядом со сканером). Как видите, у него тоже немного точек и параметров. Метод показа настроек печати спрятан на вкладке "Точки". При необходимости вы можете вывести его.

Метод для печати - doPirnt. При его вызове никаких окон не появляется, а сразу начинается печать. Самое главное - выбрать, откуда будет происходить печать, то есть, что именно мы собираемся напечатать.

Для этого сверху есть две точки: на одну нужно передать простой текст, который и будет распечатан. Если же нужно распечатать отформатированный текст, то есть текст из RichEdit, то для этого служит вторая точка. Чтобы понять, как к ней подключать RichEdit, внимательно рассмотрите следующий пример.



Видите, у RichEdit для этого есть специальная точка.

Ну а сейчас мы рассмотрим, как вывести картинку на принтер в HiAsm. Это посложнее, чем предыдущие примеры, потому что нам придётся "учить" программу отрисовывать рисунок на контексте устройства. Это сродни тому, как мы рисуем карандашом на компоненте для рисования, только здесь рисует сам компонент (принтером) уже на бумаге. Взгляните на пример.



Здесь верхние точки принтера уже не используются. Здесь используется компонент Img_Bmp, которые предназначен для отрисовки картинки. Очень важно правильно задать параметр DrawSource, ведь именно он определяет тип объекта для отрисовки картинки. Bitmap - это отрисовка на картинке, например в компоненте PaintBox. Handle - на элементе управления - любом контроле, имеющем точку свойства Handle, которую и нужно подключить к точке данных Bitmap. Ну а если требуется отрисовка на контексте устройства, то на точку данных подаётся этот контекст.

Именно так у нас и происходит: контекст принтера передан этой точке данных. Ну и, конечно, установлен соответствующий DrawSource. К точке данных SourceBitmap мы присоединили точку свойства, содержащую картинку. Картинка уже находится в компоненте Image.

Что нам остаётся для печати картинки? Только вызов метода doPrint! А затем происходит событие onPrint, которое возникает при необходимости отрисовать что-либо на контексте принтера. И вот по этому событию мы и производим отрисовку компонентом Img_Bmp. Если у вас есть принтер, обязательно попробуйте распечатать небольшую картинку.

Ну вот, собственно, и всё. Таким образом вы сможете выводить на печать различные графические объекты, снимки экрана, собственные рисунки, про что было рассказано в статье про графику в HiAsm.



Комментариев нет:

Отправить комментарий