Учебное пособие Рекомендовано учебно-методическим советом угаэс уфа-2006
Вид материала | Учебное пособие |
- Учебное пособие Рекомендовано учебно-методическим советом угаэс уфа-2005 удк 330., 1365.17kb.
- Учебное пособие Часть 1 Рекомендовано учебно-методическим советом угаэс уфа 2006, 1359.55kb.
- Бизнес-планирование предприятия учебное пособие Рекомендовано учебно-методическим советом, 1729.98kb.
- Учебное пособие Рекомендовано учебно-методическим советом угаэс уфа-2009, 2459.47kb.
- Учебное пособие Рекомендовано учебно-методическим советом угаэс уфа-2008, 3188.71kb.
- Учебное пособие Часть 2 Производственная безопасность Рекомендовано учебно-методическим, 1618.75kb.
- Учебное пособие уфа-2007 удк 330. 01 (075. 8) Ббк 65. 02., 836.31kb.
- Учебное пособие Рекомендовано научно-методическим советом, 1565.87kb.
- Учебно методическое пособие Минск 2006 удк 616. 42-006. 441-053. 2(075., 1819.29kb.
- Учебное пособие рекомендовано умо по образованию в области сервиса угаэс, 1695.83kb.
2.6. Форма
Форма представляет собой окно приложения, в котором можно размещать различные элементы управления. В приложении может быть как одна, так и несколько форм. Новая форма добавляется в проект выбором команды Project, Add Form.
2.6.1. Семейство форм
Семейство Forms является коллекцией, элементы которой представляют все загруженные формы в приложении. У семейства Forms имеются свойства Count (число форм в семействе) и item (номер формы), а также метод Add (добавляет к семейству новую форму).
2.6.2. Основные свойства формы
Многие свойства формы задаются на этапе конструирования. Некоторые свойства, например, размеры и расположение формы, можно задать с помощью мыши в окне макета и окне конструктора формы. Большинство свойств формы, установленных по умолчанию, можно изменить, используя диалоговое окно Properties. Значения свойств могут задаваться константами, числами, а также ссылками на файлы. Причем, изменение значений некоторых свойств формы проявляется только после запуске проекта на выполнение.
Рис. 2.20. Свойства формы
2.6.2.1. Свойства оформления формы
В группе Appearance (Оформление) окна Properties содержатся свойства объекта, которые задают атрибуты его внешнего вида.
Таблица 2.22
Свойство | Возвращает или устанавливает |
Appearance | вид формы при выполнении кода: 0 - плоский; 1- объемный |
Caption | текст, отображаемый в строке заголовка формы |
BorderStyle | тип границы формы (в режиме конструктора). 0 – vbBSNone; 1 – vbFixedSingle; 2 – vbSizable; 3 – VbFixedDialog; 4 – vbFixedToolwindow; 5 – VbSizableToolwindow |
BackColor, ForeColor | цвет фона и текста формы. В окне свойств могут задаваться числами или константами Windows, преобразуются в шестнадцатеричные числа |
Picture | фон формы, программируется функцией LoadPicture("ИмяФайла") |
2.6.2.2. Свойства позиционирования формы
Группа Position (Расположение) окна Properties служит для установки размеров и положения формы на экране.
Таблица 2.23
Свойство | Возвращает или устанавливает |
StartUp-Position | положение формы после запуска приложения. Допустимые значения: 0 – VbManual – положение формы задано при конструировании; 1 – VbCenterOwner; 2- VbCenterScreen; 3 – VbWindowDefault |
Height, Width | высота и ширина формы, включая толщину границ и высоту заголовка формы. Единицы измерения – Twips (твипы). В 1 дюйме 1440 твипов |
Left, Тор | координаты на экране левого верхнего угла формы |
Moveable | значение True – пользователь может передвигать окно приложения |
2.6.2.3. Общие свойства формы
Свойства группы Misc (Общие) задают общие атрибуты формы.
Таблица 2.24
Свойство | Возвращает или устанавливает |
Name | имя формы. |
MaxButton, MinButton | значение True при наличии в форме кнопок «Развернуть» и «Свернуть», соответственно. |
ControlBox | значение True при наличии в форме системного меню. |
WindowState | состояние формы после запуска приложения. Допустимые значения: 0 - VbNormal – обычное; 1 – VbMinimized – свернутое; 2 – VbMaximized – развернутое. |
Icon | значок приложения, программируется функцией |
KeyPreview | значение True, если форма получает сообщение о событиях нажатия клавиш. |
MousePointer | форму указателя мыши. Допустимые значения: 0 - VbDefault - по умолчанию, 1 - VbArrow, 2 - VbCrosshair, и т.д. до 15. 99 – VbCustom - Значок, указанный в свойстве MouseIcon. |
MouseIcon | форму указателя мыши в случае MousePointer=VbCustom |
ShowInTasbar | значение True - окно приложения выводится на панели задач. |
2.6.2.4. Свойства поведения формы
Приведем некоторые свойства формы из группы Behavior (Поведение) окна Properties.
Таблица 2.25
Свойство | Возвращает или устанавливает |
AutoRedraw | признак перерисовки графики и текста на поверхности формы, (например, после сворачивания) |
Enabled | признак доступа к форме и объектам на ней; |
Visible | признак видимости объекта |
2.6.2.5. Свойство шрифт формы
Свойство шрифт (группа Font) позволяет, при выводе символов на поверхность формы, устанавливать атрибуты шрифта – наименование (Name), размер (Size), начертание (Bold, Italic, UnderLine).
Пример задания свойств формы.
- Caption – Форма-Окно приложения.
Icon - файл ...\Icons\Misc\Face02.ico.
- BackColor - ToolTip,
- ForeColor - &HFF или красный цвет из палитры.
- BorderStyle – vbSizable
- Font: - MS Sans Serif, размер – 18 , начертание – полужирный курсив
- Picture - файл ...\Bitmaps\Gauge\Vert.bmp.
| |
Рис. 2.21. Свойства формы |
2.6.2.6. Слои формы
Форма имеет три слоя: фон формы (для фона с рисунком используйте свойство Picture), слой для вывода изображения или текста (используйте методы Print и PaintPicture, например, Print "Второй слой формы") и слой для размещения элементов управления, причем последние могут налагаться друг на друга.
2.6.3. Основные методы и события формы
2.6.3.1. Методы формы
Таблица 2.26
Метод | Действие |
Show | Отображает форму на экране |
Hide | Закрывает форму |
Move | Изменяет местоположение и размер формы |
Cls | Очищает форму, закрашивая ее цветом фона. |
| Отображает в форме строку текста. Синтаксис: Print "Строка" |
2.6.3.2. Графические методы формы
В дополнение к рассмотренным методам формы – Сls и Print изучим методы рисования во втором слое формы.
Метод PaintPicture - выводит изображение в определенной области формы. Синтаксис:
PaintPicture picture, xl, yl, widthl, heightl, tbx2, y2, width2, height2, opcode
где Picture – объект-источник графического изображения;
xl, yl - координаты левого верхнего угла, где будет располагаться рисунок;
widthl, heightl - ширина и высота рисунка;
х2, у2 и width2, height2 - координаты левого верхнего угла, ширина и высота части источника графического изображения, заданного параметром Picture (эти параметры не используются при выводе всего изображения);
opcode - тип побитового смешивания при наложении изображений.
Метод Pset - рисует точку заданного цвета. Синтаксис:
PSet [Step] (x, у), [color]
где (х, у) - координаты точки в заданной системе координат формы,
step – ключевое слово, определяющее параметры х, у как приращения относительно текущей точки
color - цвет точки; если этот параметр опущен, то цвет - ForeColor.
Метод DrawWidth – задает толщину рисования в пикселах.
Форма имеет также методы рисования окружности, дуги или эллипса заданного цвета – Circle, а также линии или прямоугольника заданного цвета – Line.
Пример рисования и стирания "по точкам".
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, _ x As Single, y As Single)
If Button = vbLeftButton Then PSet (x, y), vbRed
If Button = vbRightButton Then PSet (x, y), Me.BackColor
End Sub
2.6.3.3. События формы
Таблица 2.27
Событие | Происходит |
Initialize | при инициализации формы, но до ее загрузки. |
Load | после инициализации формы, но до ее отображения на экран. |
Unload | перед закрытием формы. Возвращает параметр Canсel для подтверждения закрытия формы. По умолчаниию Canсel=0 - закрыть; |
QueryUnload | перед событием Unload, для подтверждения закрытия формы. |
Terminate | при закрытии формы. |
Click, DblClick | при щелчке и двойном щелчке в форме. |
MouseDown, MouseUp | при нажатии и отпускании кнопки мыши. |
KeyPress | после ввода символа на клавиатуре |
Key Down, KeyUp | при нажатии и отпускании клавиши на клавиатуре. |
Activate, Deactivate | при активизации и деактивизации формы. |
Resize | при изменении размеров формы. |
GotFocus, LostFocus | при получении и потере фокуса |
События Form_Activate, Form_Deactivate, Form_LostFocus и Form_GotFocus происходят при перемещении между окнами одного приложения. При перемещении между окнами разных приложений эти события не происходят. Если на форме есть другие объекты, способные получать фокус (кнопки, списки, поля ввода и т.п.), то события Form_GotFocus не происходит, а фокус получает один из этих объектов.
Напомним, что окно редактора кода Code открывается командой меню View, Code, либо двойным щелчком на элементе управления или на форме. В последнем случае, в окне редактора кода готов шаблон процедуры обработки события "по умолчанию". Пример.
Private Sub Form_Initialize()
AutoRedraw = True
KeyPreview = True
Picture=LoadPicture("C:\Program Files\Microsoft Visual Studio\" _
& "Common\Graphics\Bitmaps\Gauge\Circlock.bmp")
PaintPicture Me.Picture, Width / 20, Height / 20, 2000, 2000
End Sub
| |
Рис. 2.22. Редактор кода | Рис. 2.23. Рисование на форме |
2.6.4. Обработка событий мыши
Процедуры событий Click, DblClick не имеют параметров, а процедуры событий MouseDown, MouseMove и MouseUp имеют параметры Button и Shift.
Таблица 2.28
Параметр | Возвращает |
Button | целое число, обозначающее нажатую кнопку мыши. Допустимые значения: 1 - VbLeftButton - левая кнопка; 2 - VbRightButton - правая кнопка; 4 - VbMiddleButton - средняя кнопка (не работает). |
Окончание табл. 2.28
Shift | целое число, обозначающее нажатую клавишу клавиатуры. Допустимые значения: 1 - VbShiftMask - клавиша Shift; 2 - VbCtrlMask - клавиша Ctrl; 4 - VbAltMask - клавиша Alt. |
X и Y | положение указателя мыши в координатах формы. |
Событие нажатие кнопки мышки MouseDown возникает сразу после нажатия на кнопку мыши, когда указатель находиться на объекте. Пример обработчика события.
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single)
If Button = VbLeftButton Then
MousePointer = VbCustom 'указатель мыши по выбору
Mouselcon = LoadPicture("...\Cursors\pencil.cur")
End If
End Sub
Событие перемещение указателя мышки MouseMove возникает, когда указатель перемещается над объектом, при этом кнопка мыши необязательно должна быть нажата. Пример.
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, _ X As Single,Y As Single)
If Button = VbLeftButton Then ' нажата левая кнопка мыши
PSet(X, Y) 'ставим точку
End If
End Sub
Событие отпускание кнопки мышки MouseUp возникает сразу после отжатия кнопки мыши, когда указатель находиться на объекте. Пример.
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
If Button = VbLeftButton Then
MousePointer = VbDefault 'указатель мыши по умолчанию
End If
If Button = vbRightButton Then Cls
End Sub
При написании кода обработки событий необходимо учитывать следующее.
При щелчке кнопки мыши происходит три события в следующей последовательности: MouseDown, MouseUp, Click.
При двойном щелчке кнопки мыши происходит пять событий в следующей последовательности: MouseDown, MouseUp, Click, DblClick, MouseUp.
Событие DblClick "два в одном" происходит после второго щелчка левой кнопки мыши, когда указатель находится на объекте. Например, событие первый щелчок выделяет строку и делает ее текущей в списке List1, второй позволяет выполнить код события – DblClick.
Private Sub List1_DblClick()
List2.AddItem List1.Text 'добавить строку в список List2
List1.RemoveItem List1.ListIndex 'удалить строку из списка List1
end Sub
2.6.5. Обработка событий клавиатуры
Каждая клавиша на клавиатуре имеет свой код сканирования (не путать с кодом символа, хотя некоторые значения совпадают), которому Visual Basic ставит в соответствие свои константы.
2.6.5.1. Коды клавиш
Таблица 2.29
Констатнта | Код | Клавиша | Констатнта | Код | Клавиша |
VbKeyBack | 8 | BackSpace | vbKeyFl - vbKeyF12 | 112 - 123 | F1 - F12 |
vbKeyTab | 9 | Tab | vbKeyPageUp | 33 | PageUp |
VbKeyReturn | 13 | Enter | VbKeyPageDown | 34 | PageDown |
VbKeyShift | 16 | Shift | VbKeyEnd | 35 | End |
VbKeyControl | 17 | Ctrl | VbKeyHome | 36 | Home |
VbKeyEscape | 27 | Esc | VbKeyLeft | 37 | влево |
VbKeySpace | 32 | Пробел | VbKeyUp | 38 | вверх |
vbKeyDelete | 46 | Delete | VbKeyRight | 39 | вправо |
vbKeyA-VbKeyZ | 65 - 90 | А - Z | VbKeyDown | 40 | вниз |
Объекты, допускающие ввод с клавиатуры имеют события KeyPress, KeyDown и KeyUp. При помощи логического свойства KeyPreview можно управлять порядком, в котором Windows обрабатывает эти события: по умолчанию сначала события клавиатуры формы, а потом элементов управления (значение свойства формы KeyPreview = True), или наоборот, KeyPreview=False.
Событие ввод символа KeyPress возникает после ввода символов. Процедура события KeyPress имеет параметр KeyAscii - код символа: буквы, цифры, знаки на стандартной клавиатуре, а также клавиш Enter, Esc, Tab, BackSpace и Space.
Событие нажатие клавиши KeyDown возникает сразу после опускания клавиши. Событие отпускания клавиши KeyUp возникает сразу после подъема клавиши.
Процедуры событий KeyDown и KeyUp имеют параметры:
- Keycode – код клавиши (не зависит от регистра).
- Shift – числовой параметр, соответствующий нажатой клавише:
1 - VbShiftMask - клавиша Shift,
2 - VbCtrlMask - клавиша Ctrl,
4 - VbAltMask - клавиша Alt.
Пример.
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Print " - код клавиши: " & Str(KeyCode)
Print "------------------------------------------"
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
Print "Enter - код символа: " & Str(KeyAscii)
Case 27
Print "Esc - код символа: " & Str(KeyAscii)
Case 32
Print "Space - код символа: " & Str(KeyAscii)
Case Else
Print Chr(KeyAscii) & " - код символа: " & Str(KeyAscii)
End Select
End Sub
Результат выполнения обработчиков событий Form_KeyUp и Form_KeyPress
| | |
Рис. 2.24. Коды символов и клавиш |
2.6.7. Единицы измерения размеров
Основной единицей измерения размеров является твип (twip).
В 1 дюйме 1440 твипов, а в 1 см - 567 твипов.
В Visual Basic в качестве единиц измерения используются также пункты (в одном дюйме 72 пункта) и пиксели (наименьшая единица измерения разрешения монитора или принтера). Единица измерения размеров устанавливаются в свойстве ScaleMode.
- VbUser или 0 – определенная пользователем единица измерения;
- VbTwips или 1 – твипы; используется по умолчанию;
- VbPoints или 2 – пункты;
- VbPixels или 3 – пиксели;
- VbCharacters или 4 – символы;
- VbInches или 5 – дюймы;
- VbMillimeters или 6 – миллиметры;
- VbCentimeters или 7 – сантиметры.
2.6.8. Инструкции начала и завершения работы с формой
Таблица 2.30
Load | Загружает форму или элемент управления в память Синтаксис: Load object |
Unload | Выгружает форму или элемент управления из памяти Синтаксис: Unload object |
End | Завершает программу без генерации событий Unload, QueryUnload, Terminate |
2.6.9. Соглашения об именах объектов
При создании формы или элемента управления, Visual Basic устанавливает свойство объекта Name (т. е. его имя) по умолчанию. Например, для первой созданной кнопки свойство Name устанавливается равным command1, для второй - command2 и т. д. При разработке приложений с одной формой имя объекта, устанавливаемое по умолчанию, обычно не вызывает никаких проблем и в этом случае имена объектов можно оставить без изменения. Если приложение обладает сложной структурой и состоит из нескольких форм, то в этом случае бывает полезным переименовать объекты так, чтобы они различались. Для переименования объектов и переменных существует соглашение об именах, называемое венгерской нотацией. Суть соглашения состоит в следующем: имя объекта начинается с короткого префикса для объектов одного и того же класса. За префиксом следует собственно имя, отображающее суть объекта. В таблице приведены префиксы и примеры имен для управляющих элементов.
2.6.9.1. Префиксы имен объектов
Таблица 2.31
Объект | Префикс | | Объект | Префикс |
TextBox | Txt | | Frame | Fra |
Label | Lbl | | Image | Img |
CommandButton | Cmd | | PictureBox | Pic |
ListBox | Lst | | Line | Lin |
ComboBox | Cbo | | Shape | Shp |
HScrollBar | Hsb | | FileListBox | Fil |
VScrollBar | Vsb | | DirListBox | Dir |
OptionButton | Opt | | DriveListBox | Drv |
CheckBox | Chk | | Data | Dat |
Timer | Tmr | | Form | Frm |