Учебник по Visual Basic - Создание элементов управления Active X на примере ZigZag.

E-mail Печать PDF
Рейтинг пользователей: / 27
ХудшийЛучший 
Индекс материала
Учебник по Visual Basic
1.2. Преймущества и недостатки VB
1.3. Запуск VB.
1.4. Интегрированная среда разработки (IDE - Integrated Development Environment)
1.5. Основные конструкции языка.
2. Типы данных. Переменные и процедуры, их области видимости. Массивы.
2.2. Переменные и процедуры, их области видимости.
2.3. Объявление массивов и работа с ними.
3. Создание меню
3.1. Создание статического меню
3.2. Создание контекстно-зависимого меню
5. Реализация технологии Drag&Drop средствами VB
5.1. Объекты Drag&Drop
5.2. События Drag&Drop
5.3. Автоматическое перетаскивание
5.4. Перетаскивание с использованием OLE
5.5. Автоматическое перетаскивание с использованием OLE
5.5. Программируемое перетаскивание с использованием OLE
6. Работа с классами в Visual Basic.
6.1.1. Добавление в класс свойств.
6.1.2. Добавление в класс методов.
6.1.3.Добавление в класс событий.
6.1.4.Объявление и использование объектов.
6.1.5. Удаление объекта класса.
6.2. Самостоятельная работа - доработка класса Splitter.
7. Технология OLE
7.1. Элемент управления OLE Container
7.2. Объекты OLE как элементы управления
7.3. OLE Automation
7.4. Создание объекта OLE
7.5. Использование объекта OLE
7.6. Работа с объектами Word
8. Создание элементов управления Active X.
Создание элементов управления ActiveX
Создание элементов управления Active X на примере ZigZag.
9. Использование функций Windows API в VB.
API-вызовы
10. Файловые функции в Visual Basic.
10.2. Обработка текстовых документов (файлы последовательного доступа).
10.3. Файлы произвольного (прямого) доступа.
10.4. Файлы инициализации.
10.5. Использование FSO (File System Object).
11. Использование элемента управления WinSock Control для создания сетевых приложений.
12. Доступ к базам данных из VB с помощью ADO.
12.2. Объект управления данными - ADO Data Control.
12.3. Связанные с данными элементы управления.
12.4. Использование Data Grid Control.
12.5. Доступ к базам данных через объекты ADODB.
13. Практика
Все страницы

Создание элементов управления Active X на примере ZigZag.

Создавать элементы управления Active X (Active X Controls) в среде VB очень просто. На данном занятии мы создадим элемент управления ZigZag, который представляет собой контейнер, внутри которого двигается некий текст.

По сути Active X Control - это класс, имеющий визуальное представление и скомпонованный таким образом, что можно получить доступ к методам, свойствам и событиям класса, не имея собственно исходного кода этого класса.

Мы будем создавать наш элемент управления ZigZag не с нуля, а комбинируя уже существующие стандартные элементы управления VB.

Откройте статью М. Эскина «Создаем свой Active X Control», которая расположена на сетевом диске P:\PREP\System_program\VB\Lessons\ActiveX_Control\1.html и создайте вместе с автором свой элемент управления Active X. Обратите внимание на использование Active X Ctrl Interface Wizard'а, существенно облегчающего определение свойств, методов и событий вашего элемента управления.

 

2. Самостоятельная работа.

Разработать элемент управления Active X -  Liner, представляющий собой простейший векторный графический редактор, оперирующий только линиями различного цвета.

Редактор имеет четыре кнопки для управления его работой (Очистить, Удалить, ОК и Добавление), панель выбора цвета (из кнопок), а также область рисования. В области рисования нажатие левой кнопки мыши приводит к началу рисования новой линии. Удерживая левую кнопку мыши пользователь создает новую линию текущего цвета. Отпуская кнопку мыши, пользователь завершает рисование линии и полученная линия сохраняется. Кнопка «Очистить» полностью очищает поле рисования. Кнопка «ОК» просто инициирует (RaiseEvent) созданное вами событие onOK. Нажатие кнопки «Добавление» переключает элемент в режим редактирования. В режиме редактирования кнопки выбора цвета, «Очистить» и «ОК» неактивны, кнопка «Удалить» становится активной, а кнопка «Добавить» вдавливается и текст на ней изменяется на «Редактирование». В режиме редактирования пользователь может выбрать любую существующую линию нажатие правой кнопки мыши около нее. При этом выбранная линия выделяется:

Когда линия выбрана, можно «захватить» мышью один из ее концов и перетащить его на новое место (левой кнопкой мыши) или удалить выбранную линию нажатием кнопки ‘Удалить'.

Новое нажатие на кнопку «Редактирование» переводит редактор в режим рисования (добавления новых линий), кнопка «Удалить» вновь становится неактивной.

Полученный элемент управления встроить в форму.

Советы по выполнению:

-    все линии хранятся внутри элемента управления в виде массивов координат начала и конца линий, также хранится цвет для каждой линии

-    панель выбора цвета - массив элементов управления «кнопка», имеющие свойство BackColor - цвет на кнопке, а Style - «1-Graphical». Обработка нажатия весьма проста - обрабатывается нажатие на все кнопки одной функцией и текущему цвету присваивается свойство BackColor нажатой кнопки (для хранения цвета используйте переменную типа Variant)

-    вырисовка линий происходит в обработчике  события Paint самого элемента управления (UserControl_Paint) - просто пробегаемся циклом по всем нарисованным линиям и рисуем их с помощью процедуры Line, формат процедуры :

Line (x1,y1) - (x2,y2),Color,BF

BF - необязательный параметр, который вместо линии рисует закрашенный прямоугольник по заданным координатам

-    для рисования новых линий необходимо написать соответствующие обработчики событий MouseDown (кнопку мыши нажали), MouseMove (водят мышью - рисуют), MouseUp (кнопку мыши отпустили - закончили рисование линии)

-    для выбора линии в режиме рисования проще всего использовать такой метод:

o X и Y - координаты мыши в момент нажатия правой кнопки мыши (они передаются в обработчик в качестве параметров аналогичного вида)

o Проходим по всем существующим линиям

o Для каждой линии считаем расстояние от начальной до конечной точки по формуле sqr((x1-x2)^2+(y1-y2)^2)

o Также считает сумму расстояний от указателя мыши до начальной и конечной точки

o Вычитаем из второго первое

o Выбираем линию с минимальной разницей - это и будет самая ближайшая линия

-    Кнопка «Добавить/Редактирвать» - флажок (CheckBox), имеющий свойство Style равным «1-Graphical». Изменение надписи происходит по событию Click.