Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Создание формы с тремя кнопками: "1", "2". "3"



При нажатии одной из них о произошедшем событии выводится надпись, например: "Кнопка: 1". Помимо этого, возможен доступ при помощи быстрых клавиш: Аlt-1, Аlt-2, Аlt-З соответственно. Последовательность доступа задается в порядке, обратном нумерации, т.е. "3", "2", "1". Другими словами, при загрузке формы фокус будет у кнопки "3".

Элементы управления и их свойства в приложении "Кнопки"

Элемент Свойство Значение
Форма (Name) Border Style Caption StartUpPosition frmButtons 1 - Fixed Single Кнопки 2 - Center Screen
Метка (Name) Caption lblMessage
Кнопка 1 (Name) Caption TabIndex cmdl &1 2
Кнопка 2 (Name) Caption Tablndex cmd2 &2 1
Кнопка 3 (Name) Caption Tablndex cmd3 &3 0

Использование кнопок управления и фокуса


Option Explicit Private Sub cmdl_Click() Call WriteCaption(1) End Slab Private Sub cmd2_Cliek() Call WriteCaption(2) End Sub Private Sub cmd3_Click () Call WriteCaption(3) End Sub Private Sub WriteCaption (Index As Byte) lblMessage. Caption = "Кнопка" & Index End Sub
При работе с текстом на форме, используются следующие элементы управления: Label и ТехtВох. Label (Метка). Применяется для отображения текста на форме, при этом его редактирование невозможно. Метки используются для визуальной подсказки пользователю о функциональном назначении того или иного элемента на форме. Свойства, используемые при работе с метками, приведены в таблице 2.31.

Название Описание
Caption Текст надписи
Alignment Выравнивание текста: 0 - Left Justify (по левому краю) 1- Center(по центру) 2- Right Justify (по правому краю)
AutoSize Автоматическое изменение размеров метки
Wordwrap Размещение текста на нескольких строках

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

Если необходимо расположить текст в метке на нескольких строках с автоматическим увеличением ее высоты, следует разрешить перенос слов путем присвоения World Wrap = True. При этом следует отметить, что перенос слов, установленный таким образом, будет действовать только в том случае, если установлено свойство AutoSize = True.

ТехtВох (Текстовое поле). Используется для реализации диалога с пользователем путем ввода им с клавиатуры определенной информации. Так как у элемента ТехВох отсутствует свойство Caption, то в качестве его замены используют метку с соответствующим текстом.

Основные свойства элемента ТехtBох

Название Описание
Text Содержимое текстового поля
Alignment Выравнивание текста относительно границ
MultiLine Расположение на нескольких строках
ScrollBars Полосы прокрутки для текстового поля. 0 - None (нет) 1 - Horizontal (горизонтальная) 2 - Vertical Both (o6e)
SelStart Начальное расположение курсора
SelLength Количество выделенных символов в поле
SelText Текст для замены выделенного фрагмента
PasswordChar Символ вводимого пароля
MaxLength Максимальная длина пароля
Locked Запрет на редактирование текста



Текст, который вводится пользователем, обрабатывается с помощью свойства Техt. Если он не помещается в заданных границах текстового поля, можно разрешить перенос слов путем установки свойства MultiLine = Тгuе. Вместе с этим необходимо выбрать один из вариантов для полос прокрутки текста (свойство ScrollBars), так как размеров поля может не хватить для отображения всей введенной информации.

Также можно установить тип выравнивания текста при помощи свойства Alignment (аналогично элементу Label), которое, однако, будет выполнено только в случае указанного выше присвоения MultiLine = True.
Для того чтобы при получении фокуса текстовым полем курсор находился в заданной позиции (по умолчанию - в начале текста), используется свойство SelStart - позиция.

Здесь позиция - порядковый номер символа в текстовом поле, перед которым будет расположена точка ввода, при этом нумерация символов начинается с 0. Для точки ввода можно задать не только позицию курсора, но и количество символов, которые будут выделены, т.е. какую часть текста необходимо заменить первым вводимым символом. В этом случае применяется свойство SelLength-количество.

Print (см. рис. 2.79). Используется при необходимости установления пользователем параметров печати, в частности, названия и свойств принтера, размера бумаги, ее ориентации (книжная или альбомная), диапазона выводимых на печать.
Необходимо помнить, что диалоговое окно Print не участвует в отправлении данных на принтер, а только задает параметры для печати. Поэтому, при необходимости вывести на печать информацию, следует наряду с использованием данного диалога также описать процедуру, которая будет непосредственно посылать данные принтеру.

Обработка событий мыши и клавиатуры


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

Обработка воздействий мыши состоит из следующих основных разделов:
1. События и состояние кнопок мыши.
2. Перетаскивание мышью различных элементов.
Следует отметить, что существует два часто обрабатываемых события мыпш, возникающие при использовании левой кнопки:

С1iск - происходит при щелчке на элементе;
DblClick - происходит в случае двойного щелчка.
Для некоторых элементов управления, таких как Label или Image, приведенные события инициируютея при нажатии как левой, так и правой кнопок. События и состояние кнопок мыши. В том случае, когда при работе приложения нажимается или отпускается одна из кнопок мыши, а также если ее указатель перемещается, то возникают следующие события:

MouseDown - нажата любая кнопка;
Mouseup - отпущена любая нажатая кнопка;
MouseMove - указатель мыши переместился
Перечисленные события могут распознаваться элементом управления, расположенным на форме, только в том случае, если указатель мыши находится непосредственно на нем.

Событие KeyPress различает выбор символа принадлежащего любой из приведенных категорий, а также нажатие клавиш Enter, Backspace, Tab.
События, возникающие при работе с клавиатурой

Название Описание
KeyDown Происходит, когда нажата любая клавиша
KeyPress Выполняется при выборе клавиши, соответствующей одному из символов таблицы ASCII
KeyUp Происходит при отпускании любой нажатой клавиши


Если необходимо определить, была ли нажата одна из функциональных клавиш, вспомогательных (Shift, Ctrl,Alt), либо из клавиш управления курсором, то в этом случае необходимо обрабатывать события более низкого уровня: KeyDown и Key Up.При этом необходимо заметить, что эта пара событий и KeyPress не являются заменяемыми, т.е. при нажатии, например, функциональной клавиши, вначале возникают KeyDown и KeyPress (именно в таком порядке), а затем при ее отпускании выполняется KeyUp.

Процедура обработки события KeyPress имеет один параметр: KeyAscii As Integer, который представляет собой код из таблицы символов ASCII, соответствующий нажатой клавише. При обработке кодов можно вместо числовых значений использовать константы Visual Basic, полный перечень которых можно найти в разделе KeyCodeConstants окна Object Browser.

При возникновении событий KeyDown и KeyUp, в соответствующие процедуры передаются следующие параметры:
KeyCode As Integer - аналог KeyAscii, описанного выше, однако в данном случае наличие верхнего или нижнего регистра передается через параметр Shift;
Shift As Integer - идентифицирует нажатие вспомогательных клавиш (Shift, Ctrl или Alt)

Работа с графикой

Включение изображений в форму.


Для графического оформления в форме можно использовать элементы управления Image и PictureBox. Первый из них служит просто для размещения графического изображения в форме. Второй элемент представляет собой скорее окно с рисунком, то есть он может служить и для размещения других объектов, а не только этого рисунка.

Оба элемента включаются в форму стандартным образом. Необходимо, либо выполнить двойной щелчок на соответствующем элементе, либо выделив его пиктограмму, нарисовать элемент в форме при помощи мыши.
Их свойство Borderstyle имеет различное значение по умолчанию. Для элемента PictureBox устанавливается значение 1 - Fixed Single, а для элемента Image - значение 0 -None. Этим объясняется значительное различие во внешнем виде этих элементов.

Элементы управления Image и PictureBox в форме.


Элементы типа PictureBox имеют свойство Autosize, позволяющее привести в соответствие размеры изображения и самого элемента управления. Для этого свойство должно иметь значение Тгuе. По умолчанию принимается значение False. Если пренебречь установкой этого свойства, то может оказаться, что часть изображения скрыта от обозрения,так как размер изображения задан слишком маленьким.

Создание пользовательской кнопки.


Свойство Picture, которое имеется у изображения, можно применить для создания пользовательской командной кнопки, которая по своим возможностям будет аналогична стандартной кнопке, создаваемой при помощи элемента управления CommandButton. Такой графической кнопке можно легко придать желаемый внешний вид.

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

Объекты с именами imgWhite и imgBlack служат для установки изображения на графической кнопке в зависимости от того, нажата она или нет.
Следующий листинг содержит процедуры, реализующие графические кнопки программно. Для этого использованы события MouseDown H MouseUp. Три кнопки имеют имена imgFirst, imgSecond и imgThird.Так как объекты imgWhite и imgBlack служат только для хранения изображений нажатой и не нажатой кнопок, то они сделаны невидимыми посредством свойства Visible, которое имеет значение False.

Private Sub Form_Load() imgFirst.Picture = imgBlack.Picture imgSecond. Picture = imgBlack. Picture imgThird. Picture = imgBlack. Picture imgWhite.Visible = False imgBlack.Visible = False End Sub Private Sub imgFirst_MouseDown(Button As Integer, Shift As Integer, X _ As Single, Y As Single) imgFirst.Picture = imgWhite.Picture End Sub Private Sub imgFirst_MouseUp(Button _ As Integer, Shift As Integer, X As Single, Y As Single) imgFirst.Picture = imgBlack.Picture End Sub Private Sub imgSecond_MouseDown(Button As Integer, Shift As Integer, X _ As Single, Y As Single) imgSecond.Picture = imgWhite.Picture End Sub Private Sub imgSecond_MouseUp(Button As Integer, Shift As Integer, X i As Single, Y As Single) imgSecond.Picture = imgBlack.Picture End Slab Private Sub imgThird_MouseDown(Button As Integer, Shift As Integer, X _ As Single, Y As Single) imgThird.Picture = imgWhite.Picture End Sub Private Sub imgThird_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) imgThird.Picture = imgBlack.Picture End Sub <br>

Основная задача при разработке пользовательской кнопки заключается в том, чтобы элемент управления Image реагировал на события MouseDown и MouseUp аналогично обычной командной кнопке. Эту функцию и выполняет код, приведенный выше. Естественно, для того чтобы по нажатию кнопки выполнялось определенное действие, необходимо запрограммировать событие Click для соответствующего элемента Image.

Функция LoadPicture(). Часто возникает ситуация, когда изображение для элемента управления PictureBox и Image необходимо загрузить из файла, находящегося на диске. Этой цели служит функция LoadPicture().

Формат ее вызова: Pict = LoadPicture(Path), где Pict - переменная для хранения рисунка; Path - строковая переменная, содержащая путь к графическому файлу на диске. Например, следующая строка ставит в соответствие объекту picNew стандартный рисунок Windows circles.bmp: picNew.Picture = LoadPic-ture("c:\windows\circles.bmp")

Изменение пропорций и размеров рисунка.
Элемент управления Image имеет свойство Stretch. Будучи установленным равным Тгuе, это свойство позволяет менять пропорции рисунка.В рассматриваемом ниже примере форма включает два графических элемента управления.

Элемент picMain (Picture-Box) содержит рисунок с нормальными пропорциями, а элемент imgDistort (Image - рисунок, увеличенный по ширине в полтора раза. Для того чтобы размеры элемента управления PictureBox настраивались в соответствии с размерами назначенного ему рисунка, его свойство Autosize должно иметь значение Тгuе.

Содержание процедуры, которая позволяет изменить ширину рисунка по нажатию кнопки cmdChange.
Private Sub cmdChange__Click () imgDistort.Width = picMain. Width * 1.5 imgDistort. Height = picMain. Height imgDistort.Picture - picMain.Picture End Sub

Свойство Stretch можно использовать и для увеличения рисунка без изменения его пропорций. Для этого нужно определить пропорции исходного рисунка, как отношение ширины к высоте, а затем использовать этот коэффициент при задании размеров.





Дата публикования: 2014-12-28; Прочитано: 336 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...