Технология разработки и использования ActivX Control

 

 

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ  РЕСПУБЛИКИ БЕЛАРУСЬ

 

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ  «ГРОДНЕНСКИЙ         

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМ. ЯНКИ КУПАЛЫ»

 

ФИЗИКО-ТЕХНИЧЕСКИЙ ФАКУЛЬТЕТ 

 

 

 

КУРСОВОЙ ПРОЕКТ  

по специальности 

 

на тему: Технология разработки и использования ActivX Control

в среде Visual Basic 6.0    

 

 

 

  

 

Выполнил:

Студент 2 курса заочного отделения 

Специальности: Информационно-

измерительная техника 

_____________  ____________  

 

 

 

Проверила:

Старший преподаватель  _____________ ____________ Г.П.Себровская                                                                              

(оценка)    (подпись)

 

 

 

Гродно, 2012

ОГЛАВЛЕНИЕ

 

 

ВВЕДЕНИЕ 3

1. ЭТАПЫ СОЗДАНИЕ  СОБСТВЕННЫХ УПРАВЛЯЮЩИХ ЭЛЕМЕНТОВ 2

2. СОЗДАНИЕ  ACTIVX-КОМПОНЕНТА MYSPINNER «ВЕРТУШКА» 3

2.1. Постановка  задачи 3

2.2. Проектирование  вида создаваемого элемента управления 3

2.3. Добавление  событий, методов и свойств 5

2.4. Проверка  и тестирование созданного элемента  управления ActiveX 6

2.5. Доработка   созданного элемента управления ActiveX 7

2.6. Создание  автономного элемента управления 8

3. СОЗДАНИЕ  ЭЛЕМЕНТА УПРАВЛЕНИЯ ACTIVEX VREMA «ЧАСЫ-СЕКУНДОМЕР» 10

3.1. Постановка  задачи 10

3.2. Проектирование  вида создаваемого элемента управления 11

3.3. Добавление  событий, методов и свойств 13

3.4. Проверка  и тестирование созданного элемента  управления ActiveX 15

3.5. Доработка   созданного элемента управления ActiveX 16

3.6. Создание  автономного элемента управления 16

ЗАКЛЮЧЕНИЕ 18

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 19

 

ВВЕДЕНИЕ

 

Начиная с пятой версии VisualBasic, стало возможным создавать собственные элементы управления ActiveX, которые можно использовать не только для программирования в среде VisualBasic, но и в других средах программирования, в том числе Delphi, C++. Кроме того, если вы программируете для интернет, созданные элементы управления ActiveX можно будет использовать, чтобы расширить интерактивные возможности Web-страниц. Значение технологии ActiveX выходит за рамки VisualBasic. Это направление корпорация Microsoft избрала в вопросах развития современных технологий программирования.

Дополнительные  управляющие элементы включаются в  состав программы в форме ActiveX-элементов. При этом обращаться с ними в процессе визуального программирования можно так же, как и со стандартными.

Точный состав набора дополнительных элементов, поставляемых в состав пакета VisualBasic, зависит от варианта (издания) пакета.

Прежде чем дополнительный управляющий  элемент можно будет использовать, его необходимо включить в состав коллекции инструментов для данного  проекта с помощью диалога Components (рис. 1.) (команда Components меню Project). На вкладке Controls диалога содержится список зарегистрированных элементов. Нужно поставить пометку – галочку напротив имени элемента и щелкнуть на кнопке ОК. Значок элемента появится в окне коллекции инструментов. Тогда его можно поместить на форму проекта как обычно.

Как только дополнительный элемент  включен в состав проекта, информация о его свойствах, методах и  событиях становится доступной (команда ObjectBrowser меню View или F2).

Рис. 1 Диалоговое окно Components

Цель курсового проекта –  изучить технологию разработки компонента ActivX Control в cреде Visual Basic 6.0.

Задачи:

  1. Изучить процесс проектирование элемента управления ActiveX.
  2. Научиться самостоятельно создавать ActiveX- компоненты.
  3. Запрограммировать необходимые свойства, методы и события компонента.
  4. Протестировать новый элемент управления.

 

 

 

 

 

 

 

 

1. ЭТАПЫ  СОЗДАНИЕ СОБСТВЕННЫХ УПРАВЛЯЮЩИХ  ЭЛЕМЕНТОВ

Создание собственных управляющих  элементов открывает новые возможности  в плане структурирования программы. Можно представить себе приложение, состоящее из управляющих элементов, каждый из которых реализует одну из функциональных возможностей. Проект тогда может представлять собой  “скелет”, связывающий все управляющие  элементы воедино и управляющий  их работой. При этом большую часть  кода такого проекта можно будет  использовать в других проектах.

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

Первый этап – постановка задачи на проектирование элемента управления ActiveX. На этом этапе определяется его внешний вид, то, какими свойствами и методами он должен обладать, на какие события должен реагировать, а также какие готовые элементы управления потребуются для его создания.

Второй этап – проектирование вида создаваемого элемента управления, сборка элемента управления из готовых элементов, если в этом есть необходимость.

Третий этап – добавление событий, методов и свойств.

Четвертый этап – проверка и тестирование вновь созданного элемента управления ActiveX.

Пятый этап – доработка по итогам проверки элемента управления.

Шестой этап – компиляция файла (создание файла компонента).

 

2. СОЗДАНИЕ  ACTIVX-КОМПОНЕНТА MYSPINNER «ВЕРТУШКА»

2.1. Постановка  задачи

В данном случае нашей целью  будет создание элемента управления, изображенного на рис. 2.1. и обычно называемого "вертушкой" ("spinner"). Его идея проста – щелкая мышью стрелки, пользователь может увеличивать или уменьшать числовое значение в окне.

Рис. 2.1. Это изображение элемента управления, которое мы хотим создать.

2.2. Проектирование  вида создаваемого элемента управления

Запустим VB6, выделим значок Standard EXE в появившемся окне New Project и щелкнем мышью кнопку Open. Этим мы создали приложение-контейнер, которое будет использоваться для тестирования создаваемого нами элемента управления.

Начинаем создание нового элемента управления.

В меню File выберем команду Add Project. В диалоговом окне Add Project выделим значок ActiveX Control и щелкнем кнопку Open. Теперь у нас на экране должно быть два открытых проекта, очень похожих друг на друга. Но Project1 — это приложение (Form), а Project2 — элемент управления пользователя (UserControl).

Теперь в панели инструментов появился новый элемент управления. Если подвести к нему курсор мыши, то на экране появится его текущее имя — "UserControl1". Однако значок, соответствующий данному элементу управления, окрашен в серый цвет, что означает, что он недоступен в данный момент. Он станет доступным только через несколько шагов.

Имя, присвоенное по умолчанию, можно поменять в любой момент. Выделим в окне проектов значок UserControl1 и в поле Name появившегося окна Properties введем новое имя, например MySpinner (рис. 2.2.).

 

Рис. 2.2. Два проекта на одном экране: Project1 — это приложение (Form), а Project2 — элемент управления пользователя (UserControl)

 

Для создания нашего элемента управления объединим два стандартных  компонента: TextBox (текстовое окно) и VSrollBar (вертикальная прокрутка).

Вначале щелкнем значок TextBox на панели инструментов и с помощью мыши нарисуем маленькое текстовое окно в левом верхнем углу окна формы Project2. Затем таким же образом нарисуем в окне элемент управления VScrollBar справа от TextBox.

Общие размеры нового элемента управления будут определяться именно формой UserControl. Поскольку по умолчанию  она получилась слишком большой, то изменим с помощью мыши размеры таким образом, чтобы уже нарисованные элементы управления оказались внутри формы (рис. 2.3.).

Рис. 2.3. Рисуем визуальный интерфейс для нового элемента управления.

2.3. Добавление  событий, методов и свойств

Теперь нужно написать некоторый код, с помощью которого текущее значение вертикальной прокрутки  будет отображаться в текстовом  окне при щелчках мышью стрелок. Для этого дважды щелкаем мышью изображение нарисованной нами вертикальной прокрутки и в появившемся окне Code в процедуру VScroll1_Change (обработка события "Изменение значения") вводим следующую строку:

text1.text = vscroll1.value

Как только мы ввели знак ".", на экране появился список всех допустимых свойств для данного элемента управления (рис. 2.4.) текстового окна. Это пример новых "интеллектуальных" свойств среды разработки VB. Мы можем либо выбрать нужный элемент списка (щелкнув два раза мышью или выделив клавишами и нажав Tab), либо ввести имя свойства вручную. В последнем случае курсор сам передвигается по списку, и если мы, не закончив полностью ввод имени, нажмем Tab или Enter, то автоматически вставится текущий элемент списка. (При вводе "Value" достаточно ввести "v".) К сожалению, если мы ввели неверное имя (например, "velue"), то никакого сообщения об ошибке сразу не появится - это будет обнаружено лишь при запуске программы на выполнение или компиляции.

 

Рис. 2.4. Пишем код для управления событиями

 

В целом, новый элемент  управления готов. Теперь закроем окно Code, щелкнув на нем кнопку "Закрыть" ("крестик" в правом верхнем углу), а потом таким же образом закроем Project2.

2.4. Проверка и тестирование созданного элемента управления ActiveX

Сейчас, если мы все сделали правильно, элемент управления MySpinner на панели инструментов уже не окрашен в серый цвет, что означает, что он готов для использования.

Чтобы протестировать его, щелкнем этот значок в панели инструментов и нарисуем его на форме Form1 как показано на рис. 2.5. Затем нажмем клавишу F5 или кнопку Start для запуска приложения. Когда мы начнете щелкать стрелки MySpinner, числовое значение в тестовом окне будет изменяться.

Рис. 2.5. Тестирование первого варианта нового элемента управления

 

Заработало, но не совсем так, как этого бы хотелось. Во-первых, в момент запуска приложения появляется непонятное слово "text", и только после того, как мы щелкнули стрелки, — нужные числовые значения. Во-вторых, сам шрифт в окне слишком мелкий. В-третьих, числовое значение не хочет становиться меньше нуля. Так что наш элемент управления требует некоторой доработки.

2.5. Доработка   созданного элемента управления ActiveX

Для этого опять вызовем  на экран Project2, щелкнув его значок в окне Project. Значок MySpinner в окне инструментов опять стал серым (недоступным), а изображение на форме Form1 покрылось штриховкой.

Сделаем нужные дополнения. В окне Properties для элемента управления Text1 установим значение свойства Text = 000 (просто чтобы хорошо видеть размер цифр), а потом щелкнем название свойства Font и в появившемся окне установим нужный размер шрифта, например 18. А для VSrcoll1 присвоим свойству Min (нижняя граница диапазона) значение -32766. Дважды щелкнем по форме MySpinner и в процедуре UserControl_Initialize (окно Code) введем строку для  установки начального значения окна (рис. 2.6.):

text1.text = vscroll1.value

 

Рис. 2.6. Продолжаем разработку нашего компонента. Уточняем значения свойств и программный код

2.6. Создание автономного элемента управления

Закроем все окна Project2 и  повторим тестирование, описанное в  шаге 4. Теперь наш элемент управления работает гораздо лучше и выглядит симпатичнее (рис. 2.7.).

 

Рис. 2.7. Так выглядит окончательный вариант нового элемента управления в тестовом приложении

 

Теперь можно создавать  автономный компонент. Для начала заменим  стандартное имя Project2 на более оригинальное, например TestCont. Затем в меню File выберем  команду TestCont.ocx, в окне Make Project нажмем OK, и наш автономный элемент управления MySpinner, записанный под именем TextCont.ocx, готов к использованию в любой  среде разработки, которая поддерживает технологию ActiveX.

Запустим еще раз VB6, выберем в меню Project команду Components, найдем во вкладке Controls наш TestCont, отметим его, а затем нажмите OK. Новый пользовательский элемент управления MySpinner сразу же появится на панели инструментов.

 

 

 

3. СОЗДАНИЕ ЭЛЕМЕНТА УПРАВЛЕНИЯ ACTIVEX VREMA «ЧАСЫ-СЕКУНДОМЕР»

3.1. Постановка  задачи

Разберем процесс создания нового компонента ActivX (рис. 3.1.), который будет показывать системную дату и время, а также служить секундомером.

Рис. 3.1. Это изображение элемента управления, которое мы хотим создать.

 

В данном случае, отражаемые системные часы не будут стоять на месте, с момента запуска программы, а постоянно изменяться. При запуске секундомера (нажатием кнопки «Start») в одном окошке будет зафиксировано время, с которого пошел отсчет времени, в другом – сколько секунд прошло с момента «старта». После остановки (нажатие кнопки «Stop») – во втором окошке остановятся отсчитываемые секунды, а  в третье окошко запишется время остановки таймера. При повторном нажатии кнопки «Start» отсчет секунд пойдет с нуля, а время остановки секундомера исчезнет (оно появиться при повторном нажатии на кнопку «Stop»).

3.2. Проектирование вида создаваемого элемента управления

Аналогично как в пункте 2.2. запустим VB6, выделим значок Standard EXE в появившемся окне New Project и щелкнеме мышью кнопку Open.

Начинаем создание наших системных часов с секундомером.

В меню File выберем команду Add Project. В диалоговом окне Add Project выделим значок ActiveX Control и щелкним кнопку Open.

Выделим в окне проектов значок UserControl1 и в поле Name, появившегося окна Properties введите новое имя, например Vrema (рис. 3.2.).

 

Рис. 3.2. Два проекта на одном экране: Project1 — это приложение (Form), а Project2 — элемент управления пользователя (UserControl)

 

Для создания нового элемента управления (рис. 3.3.) нам нужно на форму поставить два компонента Label (метка), три компонента TextBox (текстовое окно), два элемента CommandButton (кнопка), три компонента Timer (время) и один элемент Frame (рамка).

Вначале поставим в окно формы Project2 два элемента Label, в которых будут отражаться системная дата (Label2) и время (Label1). Затем, чтобы визуально как-то отделить  секундомер от наших часов, поставим рамку (Frame) и назовем ее «Секундомер». Теперь в поле рамки можно поставить три компонента TextBox, в которых будут отражаться время запуска секундомера, время остановки и количество секунд прошедших с момента запуска до момента остановки. Также в поле рамки мы поставим две кнопки (CommandButton), собственно по нажатию на них и будет осуществляться запуск и остановка таймера.

Рис. 3.3. Визуальный интерфейс для нового элемента управления

 

В окне Properties для элемента управления Text1, Text2, Text3 удалим значение свойства Text (чтобы при запуске эти окошки были пустыми), а потом щелкнем название свойства Font и в появившемся окне установим нужный размер шрифта, например 18. Также поменяем значение свойства Caption для двух элементов управления CommandButton1 и CommandButton2 на «Start» и «Stop» соответственно. И последнее, что нам нужно поставить на форму, так это три компонента Timer, с помощью которых и будет осуществлять отсчет времени. Визуальный интерфейс для нового элемента управления готов (рис. 3.4.).

Рис. 3.4. Окончательный визуальный интерфейс для нового элемента управления.

3.3. Добавление событий, методов и свойств

Теперь для того, чтобы  системное время показывалось на форме сразу после запуска, для  компонента Timer1 свойство Enabled установим True, а Interval=1. Затем дважды щелкнем мышью по значку Timer1 и в появившемся окне Code в процедуру Timer1_Timer() вводим следующую строку:

Label1.Caption = Time()

Потом дважды щелкаем по форме и в процедуру UserControl_Initialize() записываем:

Timer3.Enabled = False

Timer2.Enabled = False

Label2 = Date

Эта запись позволит нам вывести системную дату в метку Label2 и временно отключить Timer2, Timer3, которые нам понадобятся для секундомера.

Теперь обработаем сам  секундомер. Для этого дважды щелкнем  по кнопку «Start» и запишем следующий код в процедуру Command1_Click():

Text1 = Time()

Text2 = 0

Text3 = ""

Timer2.Interval = 1000

Timer2.Enabled = True

Затем дважды щелкаем на кнопке «Stop» и в процедуру Command2_Click() записываем:

Text3 = Time()

Timer2.Enabled = False

И последнее что осталось, так это дважды щелкнуть по компоненту Timer2 и в процедуру Timer2_Timer() записать:

Text2.Text = CInt(Text2.Text) + 1

Рис. 3.5. Код для управления событиями

 

В целом, новый элемент  управления готов. Теперь закроем окно Code, и таким же образом закроем Project2.

3.4. Проверка и тестирование созданного элемента управления ActiveX

Сейчас, если мы все сделали правильно, элемент управления Vrema на панели инструментов уже не окрашен в серый цвет, что означает, что он готов для использования.

Теперь щелкаем этот значок в панели инструментов и нарисуем его на форме Form1 (рис. 3.6.). Системные дата и время автоматически отразились на форме даже до запуска приложения.

Рис. 3.6. Тестирование нового элемента управления

 

Запускаем приложение. При щелчке по кнопке «Start», в первое тестовое окно запишется время запуска секундомера, во втором текстовом окне – пойдет отсчет времени (секунд) с момента запуска таймера. После нажатия на кнопку «Stop» - в третьем текстовом поле установится время остановки таймера, а во втором текстовом поле остановиться отсчет секунд с момента запуска таймера. Если повторно нажать на кнопку «Start», то во втором текстовом поле отсчет секунд пойдет сначала, а третье текстовое поле очиститься.

Все работает так как и подразумевалось.

3.5. Доработка созданного элемента управления ActiveX

Созданный элемент управления (рис. 3.7.), по итогам тестирования, в доработке не нуждается.

Рис. 3.7. Окончательный вариант нового элемента управления

3.6. Создание автономного элемента управления

Теперь можно создавать  автономный компонент. В меню File выберем команду Project2.ocx, в окне Make Project нажмем OK, и наш автономный элемент управления Vrema готов к использованию в любой среде разработки, которая поддерживает технологию ActiveX.

 

ЗАКЛЮЧЕНИЕ

 

На примере создания двух новых  элементов управления была усвоена  технология разработки и использования  ActiveX Control в среде Visual Basic 6.0.

Главную задачу курсового проекта  «Изучить процесс проектирование элемента управления ActiveX» можно считать выполненной успешно.

Созданные компоненты являются логически завершенными и готовыми к использованию.

 

 

 

СПИСОК  ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Visual Basic 6. Руководство разработчика. В 2 т.: Пер с англ. – К.: Издательская группа BHV,2000. – Т 2 – 560 с., ил.
  2. MicrosoftVisualBasic 6.0 для профессионалов. Шаг за шагом: практическое пособие. Перевод с английского. Издательство ЭКОМ, Москва 1999.
  3. Боб Ресельман, Ричард Писли, Вайн Пручняк, Эрик Смит. Использование Visual Basic 6 / Пер. с англ. — К.;М.; СПб.; Издательский дом "Вильямс", 2005 — 608 с.: ил., ISBN 5-8275-0035-6 (рус.)
  4. Брюс Мак-Кинни. Крепкий орешек Visual Basic /Пер. с англ. — М.: Издательский отдел "Русская Редакция" ТОО "Channel Trading Ltd." 2004. - 2-е изд., испр. и доп. - 632 стр.: ил., компакт-диск, ISBN 5-7502-0074-1
  5. Дж.Крейг, Дж.Уэбб. Microsoft Visual Basic 6. Мастерская разработчика /Пер. с англ. — М.: Издательский отдел "Русская Редакция" ТОО "Channel Trading Ltd." 2004. - 5-е изд., испр. и доп. - 648 с.: ил., компакт-диск, ISBN 5-7502-0127-9
  6. С.Браун. Visual Basic 6: учебный курс /Пер. с англ. — С-Пб.: "Питер", 2005. — 576 с., ISBN 5-8046-0054-0
  7. Программные элементы ActiveX / {Электронный ресурс}/ режим доступа:/ http://www.cetis-media.ru/library/activex/1.html
  8. Основы технологии ActiveX / {Электронный ресурс}/ режим доступа:/http://www.leaderit.ru/books/Internet%20Development/gl12/gl12.html
  9. ActiveX по шагам / {Электронный ресурс}/ режим доступа:/ http://www.firststeps.ru/mfc/activex/activex3.html