Глава 14. Дополнительные возможности — КиберПедия 

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Глава 14. Дополнительные возможности

2022-10-29 26
Глава 14. Дополнительные возможности 0.00 из 5.00 0 оценок
Заказать работу

14.1. ActiveX  ‑ элементы

ActiveX-элементы (внешние управ­ляю­щие элементы, которые нахо­дят­ся в OCX-файлах, представляют собой го­то­вые модули, реализующие некоторые типичные задачи, элементы интер­фей­са пользователя, вк­лю­чае­мые в состав приложения или в HTML‑документ (п.15.2.12). ActiveX-эле­менты можно создавать в различных системах программирования и ис­поль­зовать в Visual Basic, так как структура и правила их исполь­зования унифицированы.

Покажем создание ActiveX-элемента на примере. Создадим новый управляющий элемент под названием ctlActX и разместим его на панели элементов, а для отладки его создадим программу (рис. 14.1.1).         

 

Рис. 14.1.1. Формы управляющего элемента и программы его тестирования

 

     Запустите Visual Basic, выберите команду File/New Project, выделите значок ActiveX Control и нажмите Open, откроется окно User Control, ко­ман­дой File/Save UserControl As сохраните элемент под именем ActX.CTL, командой File/Save Project сохраните проект под именем ActX.VBP.

     Для построения элемента можно использовать мастер VB Active Control Interface Wizard, который включается в меню Add-Ins командой Add-Ins/Add-In Manager и вызывается далее командой Add-Ins/Active Control Interface Wizard.

В нашем примере мы не будем использовать этот мастер. Для присвоения имени новому элементу выполним команду Project/Pro ject1 Properties, выберем страницу General и в поле имени проекта Project Name укажем ActX, а в поле описания проекта Project Description ‑ текст “Cобственный ActiveX Control” (это имя будет указано в списке выби­раемых компонентов, который выводится командой Project/Components). Зададим значения свойств окна UserControl: Name=ctlActX (имя элемента, которое появится в сплывающей подсказке на панели элементов и которое будет присваиваться по умолчанию при размещении элемента на форме приложения), BackColor=(красный цвет), разместим две кнопки и текстовое поле (рис. 14.1.1.]. Составим текст про­цедур для кнопок:

Private Sub Command1_Click() ‘обработка кнопки “Привет ”

Text1.Text = ”Здравствуйте!” ‘формирование значения поля Text1

End Sub

Private Sub Command2_Click() ‘обработка кнопки “Очистить ”

Text1.Text = ””                    ‘формирование пустого значения поля Text1

End Sub

     После размещения нового элемента на форме пользователь должен иметь возможность изменять размеры этого элемента. Размеры кнопок и тексто­вого поля этого элемента должны автоматически пропорционально изменяться. Для этого воспользуемся событием Resize объекта UserControl, которое наступает при изменении размера этого объекта, и составим процедуру:

Private Sub UserControl_Resize() ‘процедура изменения размеров

Text1.Top=0 ‘вертикальная координата левого верхнего угла поля Text1 Text1.Left= 0 ‘горизонтальная координата левого верхнего угла поля Text1

Text1.Width = ScaleWidth         ’ширина поля Text1 равна ширине элемента

Text1.Height = ScaleHeight / 4  ‘высота поля Text1=1/4 высоты элемента

Command1.Top = Text1.Height ‘вертикальная координата кнопки

Command1.Left = 0                   ‘горизонтальная координата кнопки

Command1.Width = ScaleWidth ‘ширина кнопки равна ширине элемента

Command1.Height = Text1.Height ‘высота кнопки равна высоте поля Text1

Command2.Top = Text1.Height + Command1.Height ‘вертикальная координата

Command2.Left = 0                   ‘горизонтальная координата кнопки

Command2.Width = ScaleWidth ‘ширина кнопки равна ширине элемента

Command2.Height = Text1.Height ‘высота кнопки равна высоте поля Text1

End Sub

     Выполним команду File/Make ActX.ocx и сформируется файл ActX.OCX в нужном каталоге.

Для отладки этого нового элемента выполним команду File/Add Project/New/Standard Exe/Open и создадим новый проект TestActx. Нажав ^T, выберем новый элемент под именем “Cобственный ActiveX Control” из списка компонентов, и он окажется на панели элементов. Разместим новый элемент и кнопку Выход на форме нового проекта (рис. 14.1.1). Проце­ду­ра обработки кнопки Выход имеет вид:

Private Sub Command1_Click() ‘процедура выхода из программы

End   ‘закончить выполнение программы

End Sub

Выполним команду Save Project Group As для объединения двух проектов в группу и укажем имя группы Group1. Это позволит открывать одну группу из двух проектов одной командой Open Project и далее работать одновременно с несколькими проектами. Если в форме для тести­рования поле нового элемента окажется заштрихованным (рис. 14.1.1), то закройте окно нового элемента в проекте его создания (ActX). Выполните программу тестирования.

Добавим собственное свойство Caption в новый ActveX элемент. Перейдем в программное окно элемента ActX, выберем команду Tools/Add Procedure, в поле Name введем имя создаваемого свойства Caption, установим тип процедуры Property, область видимости ‑ Public и составим процедуры чтения свойства и присвоения нового значения свойству:

Public Property Get Caption() As String ‘процедура чтения свойства

Caption = Text1.Text           ‘значение поля Text1

End Property

Public Property Let Caption(ByVal vNewValue As String) ‘присв. значения

Text1.Text = vNewValue     ‘параметр содержит новое значение свойства

PropertyChanged ”Caption” ‘признак изменения значения свойства Caption

End Property

     Разместим на форме тестирования надпись со свойствами Name=lblCaptionProperty, Caption=””, BorderStyle=1 и две кнопки cmdRead (“Прочитать Caption”), cmdWrite (“Записать Caption”) с процедурами:

Private Sub cmdRead_Click() ‘чтение свойства

lblCaptionProperty = ctlActX1.Caption ‘вывод значения нового свойства

End Sub

Private Sub cmdWrite_Click() ‘формирование значения свойства Caption

ctlActX1.Caption = Date                    ‘значение свойства=текущей дате

lblCaptionProperty.Caption = Date    ‘вывод значения нового свойства

End Sub

     Добавим значение по умолчанию для элемента Caption. Для этого в программном окне UserControl разместим три процедуры:

Private Sub UserControl_InitProperties() ‘выполняется после размещения

Caption=Extender.Name             ’свойство=значению свойства Name элемента

End Sub

Процедура сохранения значения свойства Caption:

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)

‘метод записи свойства “Caption”-имя, Caption-значение, Name-умолчание

PropBag.WriteProperty ”Caption”, Caption, Extender.Name

End Sub

Процедура чтения запомненного значения свойства Caption:

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)

Caption = PropBag.ReadProperty(”Caption”, Extender.Name)

End Sub

Добавим новое событие для созданного элемента. В разделе глобальных объявлений (General)(Declarations) окна UserControl объявим переменную ClickRed: Public Event ClickRed. Для этого элемента составим процедуру объявления события при отпускании кнопки мышки:

Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, _

X As Single, Y As Single)

RaiseEvent ClickRed                          ‘объявление события

End Sub

Объявленное событие появится в списке событий для этого элемен­та. Введем в программном окне формы для тестирования процедуру обра­бот­ки события ClickRed элемента ctlActX1:

Private Sub ctlActX1_ClickRed() ‘заголовок процедуры

MsgBox (”Событие случилось”) ‘вывод сообщения

End Sub

     Проверьте работу программ.


Поделиться с друзьями:

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.014 с.