Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки по программированию. Visual C++, MFC, VB, ActiveX


Служба Рассылок Subscribe.Ru

Уроки по программированию от Алексеева Игоря

Урок 1. Что такое ActiveX?
Урок 2. Начинаем делать ActiveX.
Урок 3. Добавление свойства к ActiveX'у.
Урок 4. Добавление тестового проекта для ActiveX.
Урок 5. Работа с двумя проектами.
Урок 6. Добавление метода к ActiveX'у.
Урок 7. Работа с группой проектов.

Visual Basic. ActiveX. Урок 1. Что такое ActiveX?

Когда Вы работаете с Visual Basic, вы используете разные готовые элементы - ComboBox, Таймер и т. д. Они расположены на панели инструментов.

Панель элементов

Так вот, вы можете не только использовать встроенные элементы, но и делать свои. Именно они и называются ActiveX-элементы, и именно их мы и научимся делать.

ActiveX-элементы не зависят от языка программирования. Вы можете написать ActiveX на Visual C++ или на Visual Basic, и затем использовать в Delphi или в Internet Explorer. Все современные языки программирования поддерживают ActiveX. Всё это относится вообще-то к более обширной теме COM-технологий.

Наверх

Visual Basic. ActiveX. Урок 2. Начинаем делать ActiveX

Запускаем Visual Basic. В появившемся диалоге New Project выбираем ActiveX Control (если диалог не появился при запуске Visual Basic'а, то выбирем меню File->New Project).

Выбор проекта

На экране появится UserControl1, у которого вы сразу для удобства уменьшите размеры:

UserControl

UserControl - это как бы форма, только не для программы, а для ActiveX-элемента. Именно на ней мы и будем создавать наш ActiveX - создавать его внешний вид. При этом мы можем пользоваться как готовыми другими элементами, так и рисовать с нуля. Потом этот UserControl с созданным ActiveX на нём мы будем располагать на обычных формах Visual Basic'а.

Обратите внимание на то, что в проекте у нас UserControl обозначен особым значком:

UserControl

В качестве первого ActiveX мы сделаем квадратик, для которого мы сможем задать цвет (красный или синий). Это будет свойство. Кроме того мы добавим для него метод, меняющий цвет на противоположный. И, наконец, при щелчке левой кнопкой мыши на нашем квадратике наступит наше событие MyClick. Его мы тоже сделаем, и тогда тот, кто будет использовать этот ActiveX, сможет в обработчике этого события написать любой код.

Наверх

Visual Basic. ActiveX. Урок 3. Добавление свойства к ActiveX'у

Сейчас мы добавим свойство к нашему ActveX-элементу.

Сначала определим внутреннюю переменную, ответственную за цвет. Но цвета нас всего два, так что лучше всего сначала ввести новый тип MyColor, и затем завести переменную такого типа:

Option Explicit
Public Enum MyColor
  Red = 1
  Blue = 2
End Enum
Private m_blnColor As MyColor

Переменную мы завели как Private. Снаружи она видна не будет. Но нам нужен доступ к ней. Для этого пишем слудующий код:

Public Property Let Color(NewColor As MyColor)
  m_blnColor = NewColor
End Property
Public Property Get Color() As MyColor
  Color = m_blnColor
End Property

Эти два метода уже у нас Public. Имя, под которым наше свойство будет видно снаружи, можно взять любое. Мы взяли Color. Первый из этих методов служит для записи свойства Color для нашего ActiveX-элемента, второе - для его чтения.

В принципе можно было и не возиться с методами Property Get и Set, а просто объявить переменную m_blnColor как Public. Но это было бы не очень хорошо. По правилам объектно-ориентированного программирования переменные внутри объекта болжны быть закрытыми, и доступ к ним должен быть через специальные методы. Как мы и сделали.

Наверх

Visual Basic. ActiveX. Урок 4. Добавление тестового проекта для ActiveX

Теперь добавим тестовый проект. Почему? Потому что ActiveX-элемент не может существовать сам по себе. Он существует на чём-то (на форме, например). Поэтому то для испытаний нам и нужен тестовй проект.

Зайдите в меню File и выберите Add Project

Добавление проекта

В появившемся диалоге выберите Standard EXE.

Standard EXE

Обратите внимание, что в окне проекта добавится еще один обычный проект:

Новый проект

Сейчас мы сделаем наш тестовый проект главным. Это означает, что именно он будет запускаться при компиляции (т. е. при нажатии F5). Для этого щелкните на его имени правой кнопкрй мыши и в контекстном меню выберите Set as Start Up.

Установка активного проекта

Теперь наш тестовый проект главный. Об этом говорит то, что он обозначен полужирным шрифтом.

Новый активный проект

Обратите внимание, что на панели элементов добавился наш элемент:

Панель элементов

Теперь щелкните на тестовой форме Form1, так, чтобы она расположилась сверху всех окон и затем двойным щелчком на нашем ActiveX'е на панели элементов расположите на форме наш новый элемент.

Выделите его на форме и обратите внимание, что в окне свойств есть наше свойство Color, причем для него можно выбрать только два значения:

Два значения для свойства Наверх

Visual Basic. ActiveX. Урок 5. Работа с двумя проектами

Сейчас мы с вами посмотрим, как Visual Basic позволяет работать с несколькими проектами. Сейчас у нас два проекта - в одном мы конструируем наш ActiveX, и в другом мы его испытываем. При этом мы постоянно вносим изменения в ActiveX-проект, и хотим, чтобы они отражались в тестовом проекте.

Давайте внесем некоторые изменения в код нашего ActiveX'а. Вспомним, что мы хотели, чтобы его цвет был красным или синим в зависимости от его свойства Color. Сейчас такое свойство есть, но оно ни как неотражается на внешнем виде элемента. Изменим это. Для сего внесите следующие изменения в код:

Public Property Let Color(NewColor As MyColor)
  m_blnColor = NewColor
  If NewColor = Red Then
    UserControl.BackColor = vbRed
  Else
    UserControl.BackColor = vbBlue
  End If
End Property

Здесь мы анализируем, что за цвет задан в качестве параметра, и устанавливаем его в качестве цвета для формы.

Смотрим теперь, как внесённый код отразится на нашем тестовом проекте. В окошке проекта делаем двойной щелчок на форме тестового проекта Form1.

Project Explorer

Появляется наша тестовая форма. Но на ней наш элемент будет заштрихованным. Это означает, что сейчас мы с ним работать не можем.

Заблокированный элемент управления на форме

Для того, чтобы изменить ситуацию, закройте окошко UserControl1 в проекте с разрабатываемым ActiveX-элементом. Теперь на тестовой форме наш ActiveX уже без штриховки.

Разблокированный элемент управления на форме

Кстати, на панели элементов у нас было тоже самое - пиктограмма для нашего элемента сначала была серая

Заблокированный элемент на панели элементов

а затем стала нормальной:

Разблокированный элемент на панели элементов

Таким образом для работы с тестовым проектом вы должны закрыть форму с разрабатываемым ActiveX-элементом.

Можете сейчас запустить тестовый проект, нажав F5. Должна появится форма с цветным прямоугольником на ней.

Наверх

Visual Basic. ActiveX. Урок 6. Добавление метода к ActiveX'у

Добавим теперь к нашему ActiveX метод. Наш метод будет устанавливать цвет. Для добавления метода внесите следующий код в наш ActiveX-элемент (но не в код тестового проекта. Не перепутайте!):

Public Sub SetColor(NewColor As MyColor)
  'устанавливаем новый цвет
  m_blnColor = NewColor
  'изменяем цвет элемента
  If NewColor = Red Then
    UserControl.BackColor = vbRed
  Else
    UserControl.BackColor = vbBlue
  End If
End Sub

Мы объвили наш метод как Public. Т. е. он будет виден снаружи.

Давайте испытаем его в тестовом проекте. Сделайте тестовый проект активным, добавьте на него кнопку и в коде этой кнопки напишите следующий код:

Private Sub Command1_Click()
  UserControl11.SetColor Blue
End Sub

Т. е. при нажатии на наше кнопку цвет элемента станет синим. Запустите тестовый проект и убедитесь, что при щелчке на кнопке ActiveX становится синим.

Обратите внимание, что наш метод появлялся в подсказке для нашего кода:

Подсказка для метода

С добавлением метода всё.

Наверх

Visual Basic. ActiveX. Урок 7. Работа с группой проектов

Когда вы работаете с несколькими проектами, то Visual Basic создает файл группы проектов. У этого файла расширение *.vbg (Visual Basic Group) и такая иконка:

Значок группы

Когда вы хотите открыть в Visual Basic группу проектов, то вы должны сделать в Проводнике Windows двойной щелчёк именно на файле группы (с расширением *.vbg).

*.vbg

Группу проектов вы используете когда вам надо одновременно работать с несколькими проектами. Например один с разрабатываемым ActiveX'ом, а другой тестовый, как у нас.

Наверх

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу
Рейтингуется SpyLog

В избранное