- •Алгоритмизация и программирование в среде Visual Basic 6.0 Учебное пособие
- •Программирование и алгоритмизация
- •Программы и языки программирования
- •Fortran (Фортран)
- •Языки программирования
- •Языки программирования низкого уровня
- •Машинный язык
- •Assembler (Ассемблер)
- •Языки программирования высокого уровня
- •Basic (Бейсик)
- •Cobol (Кобол)
- •Pascal (Паскаль)
- •Объектно-ориентированное и визуальное программирование
- •Программирование в среде Visual Basic Введение
- •Описание
- •Основы программирования в среде Visual Basic Типы данных
- •Допустимые имена
- •Описание переменных
- •Определение типа переменной по умолчанию
- •Массивы
- •Динамические массивы
- •Чистка массивов
- •Массивы объектов
- •Константы
- •Перечисленный тип
- •Тип данных, определенный пользователем
- •Операции Visual Basic
- •Математические операции
- •Операции отношения
- •Логические операции
- •Соединение строк
- •Приоритеты операций
- •Встроенные функции Visual Basic
- •Математические функции
- •Функции проверки типов и значений
- •Функции преобразования форматов Функция Format
- •Инструкции форматирования чисел
- •Символы форматирования чисел
- •Инструкции форматирования даты и времени
- •Функции преобразования типов Преобразование строки в число и обратно
- •Преобразование выражения в стандартный тип данных
- •Функции обработки строк
- •Константы Visual Basic для управляющих ascii кодов
- •Функции времени и даты
- •Функции выбора
- •Функции, возвращающие строки
- •Инструкции Visual Basic
- •Оператор присвоения
- •Операторы управления
- •Оператор условного перехода
- •Оператор выбора
- •Оператор цикла с параметром: For - Next
- •Оператор цикла для элементов группы: For Each - Next
- •Оператор цикла с предусловием: While - Wend
- •Оператор цикла с комбинацией условий Dо - Loop
- •Функции и процедуры Описание функций и процедур
- •Вызов функций и процедур
- •Рекурсивные функции
- •Область видимости переменной
- •Время жизни переменной
- •Константы и функции для задания цвета изображения
- •Создание стандартного проекта приложения
- •Интегрированная среда разработки приложений Visual Basic
- •Компоненты рабочей среды
- •Главное меню
- •Стандартная панель инструментов
- •Окно конструктора форм
- •Окно макета формы
- •Окно проводника проекта
- •Панель элементов управления
- •Размещение элементов управления в форме
- •Команды меню Format
- •Окно свойств
- •Основные свойства элементов управления
- •Редактор исходного кода программы Окно редактора
- •Настройки редактора
- •Настройки параметров работы редактора кода (Editor)
- •Основные события и методы элементов управления
- •Сохранение и выполнение проекта
- •Семейство форм
- •Основные свойства формы
- •Свойства оформления формы
- •Свойства позиционирования формы
- •Общие свойства формы
- •Свойства поведения формы
- •Свойство шрифт формы
- •Слои формы
- •Основные методы и события формы Методы формы
- •Графические методы формы
- •События формы
- •Обработка событий мыши
- •Обработка событий клавиатуры
- •Коды клавиш
- •Единицы измерения размеров
- •DirListBox (Список каталогов)
- •Инструкции начала и завершения работы с формой
- •Соглашения об именах объектов
- •Префиксы имен объектов
- •Компоненты навигации файловой системы
- •DriveListBox (Список дисков)
- •FileListBox (Список файлов)
- •Работа со списками
- •Функции и процедуры модуля проекта
- •Окно открытия файла (Open)
- •Встроенные диалоговые окна
- •Окно ввода - функция InputBox
- •Окно сообщений - функция MsgBox
- •Константы параметра Buttons
- •Применение функций InputBox и MsgBox в проекте
- •Создание графического интерфейса приложения
- •Основное меню
- •Контекстное меню
- •Список изображений
- •Панель инструментов
- •Строка состояния
- •Обработка событий панели инструментов
- •Обработка событий меню
- •Массивы объектов
- •Создание группы переключателей
- •Порядок размещения переключателей в рамках
- •Несколько форм в проекте Шаблоны форм диалога
- •Создание и вывод на экран окна диалога
- •Создание формы диалога из шаблона Form
- •Шаблон формы Dialog
- •Шаблон формы About Dialog
- •Шаблон формы Log in Dialog
- •Общий модуль проекта
- •Новая версия - Visual Basic.Net
События формы
Событие |
Происходит |
Initialize |
при инициализации формы, но до ее загрузки. |
Load |
после инициализации формы, но до ее отображения на экран. |
Unload |
перед закрытием формы. Возвращает параметр Cansel для подтверждения закрытия формы. По умолчаниию Cansel=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
|
|
Рис. 20. Редактор кода |
Рис. 21. Рисование на форме |
Обработка событий мыши
Процедуры событий Click, DblClick не имеют параметров, а процедуры событий MouseDown, MouseMove и MouseUp имеют параметры Button и Shift.
Параметр |
Возвращает |
Button |
целое число, обозначающее нажатую кнопку мыши. Допустимые значения: 1- VbLeftButton - левая кнопка; 2 - VbRightButton - правая кнопка; 4 - VbMiddleButton - средняя кнопка (не работает). |
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
