Методи і події форм - visual basic 5

Методи і події форм

Основні властивості форм я розглядав в статті "Фундамент програми або основні властивості форм", настав час розглянути основні методи і події форм.

Тільки після цього приступайте до написання програмного коду.

А незнання головних моментів роботи з тим чи іншим елементом управління може привести до того, що час, витрачений на написання коду, буде втрачено, а результат не досягнутий. Буде досить прикро, якщо ви розробили алгоритм для свого застосування, забувши про метод, який, припустимо, дозволить виконати весь ваш код двома рядками. І вийде, що всі ваші зусилля були витрачені даремно.

Щоб такого не сталося, ще раз раджу, завжди пам'ятати, як і за допомогою чого можна зробити, ту чи іншу дію над елементом управління або змінною.

Для початку, відкрийте діалогове вікно Options ... в меню Tools. І перевірте, чи встановлена ​​галочка Auto List Members - автоматично виводити список всіх властивостей і методів обраного об'єкта.

Методи і події форм - visual basic 5

Рис 1. Діалогове вікно Options. вкладка Editor

Тобто якщо це опція включена, то після введення імені та точки буде виводитися список всіх властивостей і методів для обраного об'єкта. Якщо галочка не варто, раджу її поставити, що дуже полегшить написання програмного коду. Завжди є можливість додати властивість або метод, зайвий раз, не набираючи його на клавіатурі.

Порада. Щоб в коді програми звернутися до форми, замість імені поточної форми, можна використовувати оператором Me. що дозволить трохи спростити код і зайвий раз не згадувати ім'я форми.

Методи і події форм - visual basic 5

Рис 2. Меню, яке містить методи і властивості обраного об'єкта

Вибрати потрібний метод можна, як клацанням миші, так і натисканням клавіші Tab на клавіатурі. Якщо скористатися клавішею Enter. то ви перейдете на наступний рядок і не встановите значення для обраного властивості, тобто доведеться докладати нових зусиль, щоб повернутися на потрібний рядок.

Властивості і методи мають різні іконки, так що їх легко розрізнити.

Розглянемо основні методи роботи з формою

Circle - дозволяє намалювати еліпс, коло, дугу або сектор. Властивість форми AutoRedraw встановіть в True.

Об'ект.Circle [Step] (X, Y), радіус, [Колір], [Початок], [Кінець], [Ставлення]

Me.Circle (1000. 1000), 500. vbRed

Малює коло червоного кольору з радіусом 500.

Me.Circle (1000. 1000), 500. vbRed. 0.5

Малює еліпс, стискаючи коло по вертикальній осі.

Const P = 3.141593

Me.Circle (1000. 1000), 500. vbRed. P / 2. P

Програма малює коло, розбитий на сектори з різними стилями штрихування і різними кольорами малювання.


Private Sub Form_Load ()
Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer ()
Const P = 3.141593
Dim i As Integer
Dim dblStart, dblEnd As Double

dblEnd = -0.001
For i = 1 To 6
FillStyle = i + 1
dblStart = dblEnd
FillColor = Int (Rnd (1) * 65535) + 16777215
ForeColor = Int (Rnd (1) * 16777215) + 65535
DrawWidth = 2
dblEnd = - (2 * P / 6) * i
Circle (150. 100), 70. dblStart, dblEnd
Next
End Sub

Hide - дозволяє видалити форму з екрану, але не вивантажує з пам'яті.

Line - дозволяє намалювати лінію або прямокутник. Властивість форми AutoRedraw встановіть в True.

Об'ект.Line [Step] (X1, Y1) [Step] - (X2, Y2). [Колір], [B] [F]

В круглих дужках вказані обов'язкові параметри, в квадратних необов'язкові.

Малює лінію синього кольору.

Малює лінію тим кольором, який встановлений у властивості ForeColor форми.

Малює квадрат, залитий червоним кольором.

Move - дозволяє перемістити форму.

Me.Move [Лівий край], [Верхній край], [Ширина], [Висота]

Переміщує форму, змінюючи розмір.

Me.Move 100. 7000

Переміщує форму, параметри розміру не вказані.

PaintPicture - дозволяє скопіювати певну область на формі або PictureBox в інший малюнок. Властивість форми AutoRedraw встановіть в True.

Me.PaintPicture [Джерело], [X1], [Y1], [Шіріна1], [Висота1], [X2], [Y2], [Шіріна2], [Висота2], [Операція]

Константи параметра "операція":

Const vbDstInvert = 5570569 (H550009)

Інвертування кінцевого малюнка.

Const vbSrcAnd = 8913094 (H8800C6)

Операція AND, для пікселів джерела і кінцевого малюнка.

Const vbSrcInvert = 6684742 (H660046)

Операція XOR, для пікселів джерела і кінцевого малюнка.

Const vbSrcPaint = 15597702 (HEE0086)

Операція OR, для пікселів джерела і кінцевого малюнка.

Резервне копіювання даних зображень з Picture1 на форму, обрізаючи його відповідно заданими координатами.

Point - повернення значення кольору обраної точки. Якщо координати випадуть за межі форми, поверне -1.

Label1 = Me.Point (2. 2)

PopupMenu - дозволяє показати контекстне меню.

Private Sub Form_MouseDown (Button As Integer. Shift As Integer. X As Single. Y As Single)
If Button = 2 And vbRightButton Then
'Перевірка, чи натиснута права кнопка миші
PopupMenu mnuFile
End If
End Sub

Print - друк тексту на формі. Властивість форми AutoRedraw встановіть в True.

Me.Print "Вітаю!" vbCrLf "Бажаю всього найкращого!"

PSet - малювання точки вказаного кольору в заданому місці. За товщину об'єкта відповідає властивість DrawWidth.

Об'ект.PSet [Step] (X, Y), [Колір]

Me.DrawWidth = 10
Me.PSet (100. 100), vbRed

Refresh - виробляє оновлення форми.

Scale - установка масштабу.

ScaleX - використовується для перетворення значення висоти форми з одних одиниць (встановлених в ScaleMode) в інші.

ScaleY - використовується для перетворення значення ширини форми з одних одиниць (встановлених в ScaleMode) в інші.

SetFocus - передає фокус формі. Форма може отримати фокус, тільки якщо на ній немає елементів управління, або вони не видно або не доступні.

Show - завантажує або показує форму на екрані, якщо не завантажена в пам'ять, то метод дозволяє завантажити її.

TextHeight - повертає висоту зазначеного рядка.

Label1 = Me.TextHeight ( "Вітаю!" vbCrLf "Бажаю всього найкращого!" )

TextWidth - повертає ширину зазначеного рядка.

Label1 = Label1 Space (1) Me.TextWidth ( "Вітаю!" vbCrLf "Бажаю всього найкращого!" )

Розглянемо основні події форми

Рис 3. Список Object

Методи і події форм - visual basic 5

Рис 4. Список Procedure

Для того щоб відстежити, як в системі виникають події, тобто в якій черговості, розглянемо приклад. У цьому прикладі, при виникненні події на форму, буде поміщений відповідний текст, який буде інформувати, в якому ж порядку виникають події. Першим виникає подія Initialize.

Private Sub Form_Activate ()
Print "Виникає подія Activate"
End Sub

Private Sub Form_GotFocus ()
Print "Виникає подія GotFocus"
End Sub

Private Sub Form_Load ()
Print "Виникає подія Load"
End Sub

Private Sub Form_Resize ()
Print "Виникає подія Resize"
End Sub

Методи і події форм - visual basic 5

Рис 5. Результат виконання програми

Activate - відбувається, коли форма стає активною, тобто отримує фокус. Спрацьовує лише при перемиканні між формами проекту. Відбувається кожен раз при активації форми.

Click - відбувається після клацання миші, на вільному місці форми. Як правої, так і лівої кнопки.

DblClick - відбувається за подвійним клацанням, правої та лівої кнопки. Причому подія Click все ж відбувається.

Private Sub Form_Click ()
Print "1"
End Sub

Private Sub Form_DblClick ()
Print "2"
End Sub

Deactivate - подія відбувається, в тому випадку, коли форма перестає бути активною. Протилежно події Activate. Виникає при втраті фокуса. Спрацьовує лише при перемиканні між формами проекту.

DragDrop - відбувається при завершенні операції перетягування. У той момент, коли елемент скидається на форму.

Private Sub Form_DragDrop (Source As Control. X As Single. Y As Single)
Print "Спроба перемістити кнопку"
End Sub

Private Sub Form_Load ()
Command1.DragMode = 1
End Sub

DragOver - відбувається, коли об'єкт-джерело знаходиться над об'єктом-одержувачем, але кнопка ще не відпущена.

GotFocus - відбувається при отриманні формою фокусу. При натисканні клавіші Tab або за допомогою методу SetFocus.

Initialize - відбувається при створенні форми, причому відбувається один раз. До завантаження форми, під час конфігурації.

KeyDown - відбувається, коли форма має фокус і користувач натискає кнопку на клавіатурі.

KeyPress - відбувається при натисканні та утриманні клавіші. Причому момент утримання відбувається дуже швидко, майже миттєво. За допомогою цієї події можна отримати код натиснутою клавіші.

KeyUp - відбувається, коли форма має фокус і користувач відпускає клавішу на клавіатурі.

Load - завантаження форми в пам'ять, до її появи на екрані. Дана подія має тільки форма. Форма може бути вивантажено і заново завантажена в ході виконання програми, скільки завгодно разів. Отже, подія може виникати за бажанням розробника кілька разів.

Напевно, це саме використовується подія. Код події виконується поки форма, ще не видно на екрані.

Можна використовувати для настройки поведінки і зовнішнього вигляду форми.

Центрує форму на екрані.

Private Sub Form_Load ()
Me.Move (Screen.Width - Width) / 2. (Screen.Height - Height) / 2
End Sub

LostFocus - відбувається коли форма втрачає фокус.

MouseDown - відбувається під час натискання кнопки миші на формі.

MouseMove - відбувається при переміщенні покажчика миші над формою.

MouseUp - відбувається лише тоді, коли користувач після натискання на формі, відпускає кнопку миші.

Події MouseDown. MouseMove і MouseUp мають однакові параметри:

Form_MouseDown (Button As Integer. Shift As Integer. X As Single. Y As Single)
Form_MouseMove (Button As Integer. Shift As Integer. X As Single. Y As Single)
Form_MouseUp (Button As Integer. Shift As Integer. X As Single. Y As Single)

Button - містить номер клавіші миші.

Const vbLeftButton = 1

Const vbMiddleButton = 4

Const vbRightButton = 2

Const vbAltMask = 4

Const vbCtrlMask = 2

Const vbShiftMask = 1

X, Y - координати покажчика миші, де відбулася подія.

QueryUnload - відбувається перед подією Unload. перед закриттям форми. Якщо при обробці події параметру Cancel привласнити значення True, то вивантаження форми буде скасована.

Параметр UnloadMode містить значення, з якої причини відбувається закриття форми.

Константи параметра UnloadMode:

Const vbAppTaskManager = 3
- після натискання Ctrl + Alt + Del
Const vbAppWindows = 2
- по завершенню Windows
Const vbFormCode = 1
- в коді програми викликано подія Unload
Const vbFormControlMenu = 0
- після натискання "Закрити" в віконному меню, в заголовку форми.
Const vbFormMDIForm = 4
- щодо закриття головної форми, закривається дочірня.

Private Sub Form_QueryUnload (Cancel As Integer. UnloadMode As Integer)
If UnloadMode = vbFormControlMenu Then
Cancel = True
End If
End Sub

Resize - відбувається при зміні розмірів форми. Можна використовувати для масштабування елементів управління при зміні розміру форми.

Private Sub Form_Resize ()
Text1.Height = Form1.ScaleHeight
Text1.Width = Form1.ScaleWidth
End Sub

Terminate - виконується самим останньою подією, після Unload. Дана подія має тільки форма.

Unload - вивантаження форми і видалення з пам'яті. Дана подія має тільки форма. За допомогою параметра Cancel можна скасувати видалення форми.

Private Sub Form_Unload (Cancel As Integer)
If MsgBox ( "Ви впевнені, що хочете вийти?". VbYesNo, "Вихід з програми") = vbYes Then
Unload Me
Set Form1 = Nothing
Else
Cancel = 1
End If
End Sub

Якщо вас цікавить, якась тема, пишіть - спробую в подальшому її розкрити.

Схожі статті