Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Створення процедур обробки подій при виборі команд в пунктах меню






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. Запустіть проект і перевірте як він працює.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.