Глава 12. Клавиатура, печать — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Глава 12. Клавиатура, печать

2022-10-29 22
Глава 12. Клавиатура, печать 0.00 из 5.00 0 оценок
Заказать работу

Клавиатура

Рассмотрим события, методы и свойства, связанные с клавиатурой.

KeyDown /KeyUp  ‑ события, происходящие при нажатии/отпус­кании клавиши для текущего объекта. В процедуре можно, например, проверить правильность вводимых символов. Процедуры обработки собы­тий имеют два параметра: ASCII-код нажатой (отпускаемой) клавиши и сум­ма чисел (именованных констант), отражающая состояние клавиш Shift, Ctrl и Alt. При этом: 1 (vbShiftMask) ‑ нажата клавиша Shift; 2 (vbCtrlMask) ‑ Ctrl; 4 (vbAltMask) ‑ Alt.

KeyPress   ‑ когда нажимается и затем отпускается клавиша, соответ­ствующая ASCII-символу, наступает данное событие. Специальные симво­лы, например F1, F2, не вызывают это событие. Процедура обработки этого события имеет один параметр ‑ ASCII-код нажатой клавиши.

При анализе кода клавиши вместо числового кода клавиши можно использовать клавиатурные константы вида vbKey<обозначение клави­ши>, например: vbKeyNumLock, vbKeyF1, vbKeyHome, vbKeyX.

В этой процедуре можно, например, заменять символы:

Private Sub Form_KeyPress(KeyAscii As Integer) ‘нажатие клавиши

‘если нажата Enter, заменить ее код на 0 (игнорирование нажатия)

If KeyAscii=vbKeyReturn Then KeyAscii=0 ‘игнорирование клавиши Enter

End Sub

     Пример. Заменять при вводе строчные буквы на заглавные.

Private Sub Form_KeyPress(KeyAscii As Integer) ‘замена букв

KeyAscii=Asc(Ucase(Chr(KeyAscii))) ‘перевод всех букв в заглавные

End Sub

     Если нужно выполнение этих процедур независимо от того, где находится фокус, то для формы следует указать свойство KeyPreview= True. В этом случае будут всегда выполняться эти процедуры обработки событий формы, т.е. форма “перехватывает” событие клавиатуры и выполняет их перед тем, как выполнить процедуры, связанные с объектом, обладающим фокусом.

     Клавиши Tab (Shift+Tab) используются для перемещения фокуса на следующий (предыдущий) доступный объект с большим (меньшим) номером, который задан свойством TabIndex.

Имитация нажатий клавиш

Для демонстрационных или обучающих программ часто использует­ся процедура имитации нажатий клавиш.

Покажем на примере имитацию нажатия клавиш. Создадим две программы MoveFrom (Передатчик), MoveTo (Приемник). Программа MoveFrom будет имитировать нажатие клавиш для программы MoveTo. В обеих программах есть поле Text1 (рис. 12.2.1). Программу MoveTo оформим в виде Exe-файла, используя команду File/Make MoveTo.exe.

           

 

                      Рис. 12.2.1. Формы программ MoveFrom и MoveTo

 

Выполните программу MoveFrom, введите текст в поле Text1 этой программы и нажмите кнопку Послать нажатие клавиш, набранный текст окажется в поле Text1 программы MoveTo как будто этот текст был введен с клавиатуры.

 Приведем текст процедур программы MoveFrom.

Private Sub Form_Load() ‘процедура загрузки формы программы

Dim Id ‘объявление переменной

‘функция Shell запускает программу MoveTo.Exe. Первый ее параметр ‘указывает имя исполняемого файла, а второй ‑ стиль окна приложения ‘(значение 1 задает нормальный стиль)

Id = Shell(”moveto.exe”, 1)

End Sub

Private Sub Command1_Click() ‘кнопка “Послать нажатие клавиш ”

‘оператор AppActivate делает активным приложение MoveTo с заголовком ‘формы “Приемник”

AppActivate “Приемник” ‘активизируется форма с заголовком “Приемник”

‘оператор SendKeys посылает значение поля Text1 активной форме ‘“Приемник” в качестве нажатий клавиш для его текущего поля Text1.

‘Второй параметр True означает, что нажатия клавиш должны быть

‘обработаны приемником, прежде чем передатчик вернет управление себе.

SendKeys Text1.Text, True

End Sub

     Процедуры кнопок Выход содержат один оператор End.

Обозначения специальных клавиш, кроме Shift, Ctrl, Alt, заключаются в приемнике в фигурные скобки ({Del}{Enter}{F10}). Некоторые специальные символы имеют собственные обозначения:

 + (Shift), ^ (Ctrl), % (Alt), Down (стрелка вниз), Left (стрелка влево), Right (стрелка вправо), UP (стрелка вверх). Клавиши в комбинации соединяются.

Пример. %D для клавиш Alt+D.

Активным приложением может быть и сама программа‑передатчик. В этом случае функция Shell не используется, но аналогично используются операторы AppActivate и SendKeys.

 

Печать

     Существует специальный объект Printer, прдназначенный для выво­да на печать текста и графики. Основными средствами печати являются метод Print и генераторы отчетов, например Crystal Reports (п. 9.6), DataReport (п. 9.7). Метод Print может выводить данные в форму, на принтер (объект Printer), в графическое окно PictureBox и в окно отладки Debug. Метод по написанию и действию аналогичен команде Print без фразы Using (п. 2.5.5).

При выводе метод использует свойства шрифтов (Font) (п.5.1).

     Объект Print дополнительно имеет свойства Page  (номер текущей страницы), Pages  (число страниц).

Для определения высоты и длины выводимого текста используются методы TextHeight  (<текст>), TextWidth  (<текст>) соответственно.

Пример. Lfam=Form1.TextWidth(“Иванов Иван Иванович”).

Свойство графического окна (поля) PictureBox или формы FontTransparent =True задает прозрачный фон при выводе текста методом Print, т.е. выводимые символы накладываются как бы поверх фона формы или графического поля, и фон текста не перекрывает их фон (True).

     Координаты начального адреса (x,y) выводимого текста относительно левого верхнего угла области вывода можно задать методами CurrentX =x и CurrentY =y.

     Очистка формы или графического окна реализуется методом Cls, и свойства CurrentX и CurrentY при этом обнуляются.

     Управление принтером осуществляется методами: NewPage  (смена листа и начало печати новой страницы, свойства CurrentX и CurrentY обнуляются), EndDoc  (передача готового документа на печать диспетчеру печати Windows, свойства CurrentX и CurrentY обнуляются), KillDoc   (диспетчер печати Windows прекращает печать и очищает буфер печати).

     Для вывода на принтер всей формы без заголовка и рамки исполь­зуется метод PrintForm. Содержимое объекта PictureBox выводится на печать, если его свойство AutoRedraw=True.

Вопросы для самопроверки и контроля

Вопросы для самопроверки

1. Как указывается начальный адрес выводимого текста?

2. Как изменить шрифт и его атрибуты при выводе текста?

3. Как определить размер области вывода?

4. Как определить объем выводимого текста?

Контрольные вопросы

1. Что произойдет, если объем текста превысит размер области вывода?

2. Какие методы очищают область вывода?

3. Куда можно направить вывод результатов работы программы?

4. Что произойдет, если указать для формы свойство KeyPreview=True?

5. Для чего используется оператор SendKeys?



Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.