Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Створення процедур обробки подій при виборі команд в пунктах меню
2. Для примусового оголошення змінних, щоб уникнути помилок в іменах змінних у вікні редактора коду в розділі General Declarations введемо наступну інструкцію:
Option Explicit
3. Для вибору типу фігури введемо змінну LineType, яку оголсимо в розділі General Declarations з типом Integer:
Dim LineType As Integer
Для довільної лінії змінна LineType буде набувати значення 1, для прямої лінії – 2, для кола – 3. 4. Створюємо процедуру обробки події вибору фігури Довільна лінія з пункту меню Малювання. Для цього переходимо в редактор коду, зі списку об’єктів, що розташований зліва в верхній частині вікна редактора вибираємо mnuLine і описуємо процедуру обробки події Click:
Private Sub mnuLine_Click() mnuLine.Checked = True ' Встановлення відмітки в меню вибраної команди mnuDrLine.Checked = False ' Скасування відмітки в меню вибраної команди mnuCircle.Checked = False ' Скасування відмітки в меню вибраної команди LineType = 1 ' Вибір Довільної лінії End Sub
5. Збережіть проект. 6. Самостійно створіть процедури обробки події вибору фігур Пряма лінія і Коло з пункту меню Малювання. Далі почнемо створювати процедури для малювання об’єктів. Для малювання кожної фігури потрібно натисканням лівої клавіші миші визначати початкову точку з координатами CurrentX, CurrentY. При цьому виникає подія MouseDown, а також змінній Button присвоюється значення 1, змінним X, Y присвоюються поточні значення координат курсору миші. В процедурі обробки події MouseDown необхідно щоб змінні CurrentX і CurrentY поточні значення X, Y у якості початкових. Властивість MousePointer визначатиме вигляд курсору. 7. Створимо процедуру обробки цієї події:
Private Sub Form_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single) ' Збереження координат точки, де була натиснута кнопка миші ' у змінних CurrentX і CurrentY CurrentX = X CurrentY = Y ' Зміна вигляду курсору на хрестик MousePointer = 2 End Sub
8. Збережіть проект. 9. Запустіть проект і перевірте як він працює. При пересуванні миші на формі повинно відбуватися малювання довільної лінії. Виникає подія MouseMove. Малювання лінії в тілі процедури відбувається методом Line. Синтаксис метода Line має такий вигляд:
object. Line (X1, Y1) – (X2, Y2), color, BF object – назва об’єкту (необов’язковий параметр, у нашому випадку це форма, на якій ми малюэмо); (X1, Y1) – координати початкової точки (коли використовуються змінні CurrentX і CurrentY, як координати початкової точки, то в методі Line їх можна не вказувати); (X2, Y2) – координати кінцевої точки, до якої буде проведена лінія; color – колір лінії (необов’язковий параметр); B – малювання прямокутника; F – заповнення кольором прямокутника. 10. Створимо процедуру обробки події MouseMove:
Private Sub Form_MouseMove(Button As Integer, _ Shift As Integer, X As Single, Y As Single) If LineType = 1 And Button = 1 Then Line -(X, Y), vbBlack End If End Sub
11. Збережіть проект. 12. Запустіть проект і перевірте як він працює. Малювання прямої лінії і кола повинно відбуватися при відпусканні клавіші миші. Подія MouseUp. Малювання кола в тілі процедури відбувається методом Circle. Синтаксис метода Circle має такий вигляд:
object. Circle (X, Y), radius, color object – необов’язковий параметр; (X, Y) – координати центру кола; radius – радіус кола; color – колір лінії кола; 13. Створимо процедуру обробки події MouseUp:
Private Sub Form_MouseUp(Button As Integer, _ Shift As Integer, X As Single, Y As Single) ' Малювання прямої лінії If LineType = 2 And Button = 1 Then Line -(X, Y), vbRed End If ' Малювання кола If LineType = 3 And Button = 1 Then ' Обчислення радіуса Dim R As Single R = Sqr((X - CurrentX) ^ 2 + (Y - CurrentY) ^ 2) Circle (CurrentX, CurrentY), R, vbGreen End If ' Зміна вигляду курсору на стрілку MousePointer = 0 End Sub
14. Збережіть проект. 15. Запустіть проект і перевірте як він працює. 16. Самостійно додайте команду меню і створіть процедуру для малювання зафарбованого прямокутника. 17. Створимо процедуру обробки подій при виборі команди Очистити форму:
' Очищення форми Private Sub mnuCls_Click() Cls End Sub
18. Створимо процедуру обробки подій при виборі команди Вихід:
' Вихід Private Sub mnuExt_Click() End End Sub
19. Збережіть проект. 20. Запустіть проект і перевірте як він працює.
|