Visual Basic 6. Руководство разработчика

       

Редактирование страницы свойств


Запустите тестовый проект и проверьте работоспособность страниц свойств, сгенерированных мастером. Теперь наступил момент, когда можно добавить еще несколько элементов управления на страницу Text Property, которая позволит разработчикам изменять другие заказные свойства. Законченная страница должна иметь вид, подобный представленному на рис. 16.12.

Рис. 16.12. Страница свойств со свойствами элемента управления FLEXLabel

Откройте страницу свойств в режиме конструирования и добавьте два элемента управления ComboBox и две соответствующие метки над ними. Установите нужный размер и шрифт для всех элементов.

Теперь все готово к изменению кода. Оба элемента управления ComboBox должны быть заполнены допустимыми установками для соответствующих свойств. Наилучшее место для вставки кода инициализации — событие Initialize.

Программа 16.11. Инициализация страницы CaptionProperties

Private Sub PropertyPage_Initialize()

Combo1.AddItem "Top Left"

Combo1.AddItem "Top Middle"

Combo1.AddItem "Top Right"

Combo1.AddItem "Center Left"

Combo1.AddItem "Center Middle"

Combo1.Addltem "Center Right"



Combo1.AddItem "Bottom Left"

Combo1.AddItem "Bottom Middle"

Combo1.AddItem "Bottom Right"

Combo2.Addltem "None"

Combo2.Addltem "Carved Light"

Combo2.Addltem "Carved"

Combo2.Addltem "Carved Heavy"

Combo2.Addltem "Raised Light"

Combo2.Addltem "Raised"

Combo2.Addltem "Raised Heavy"

End Sub

Теперь необходимо исправить обработчик события

SelectionChanged().   Добавим операторы, инициализирующие два элемента управления ComboBox,        которые соответствуют двум новым свойствам. Введите следующий код в обработчик события SelectionChanged страницы свойств.

Программа 16.12. Инициализация элементов ComboBox

Private Sub PropertyPage SelectionChanged()

txtCaption.Text = SelectedControls(0).Caption

Combol.Listlndex = SelectedControls(0).TextAlignment


Combo2.Listlndex = SelectedControls(0).Effect

End Sub

Затем необходимо обновить переменную Changed из событий, обозначающих выбор нового значения из элемента управления ComboBox. Поскольку элементы ComboBox не позволяют вводить новые значения, то выбор может осуществляться только с использованием события Click. Значит, необходимо добавить обработчик события Click для элементов ComboBox, как показано ниже.

Private Sub Combol_Click()

Changed =

True

End Sub

Private Sub Combo2_Click ()

Changed = True

End Sub

На последнем шаге исправим обработчик события

ApplyChanges() так, чтобы он приводил в действие изменения в элементах ComboBox. Ниже приведен код, реализующий обработку щелчка на кнопке Apply.

Программа 16.13. Применение изменений

Private Sub PropertyPage_ApplyChanges()

SelectedControls(0).Caption = txtCaption.Text

SelectedControls(0).TextAlignment = Combol.Listlndex

SelectedControls(0).Effect = Combo2.Listlndex

End Sub

Теперь можно переключиться на тестовую форму и проверить работу страниц свойств. Как видите, страницы свойств не являются чем-то новым - это обычные формы VB, на которых можно помещать все виды элементов управления. При работе с этими страницами следует придерживаться нескольких правил, пред­лагаемых мастером.

1. Устанавливайте свойство Changed в значение True каждый раз, когда свойства меняют свое значение для разрешения использования кнопки Apply.

2. Модифицируйте свойства элементов управления, используя выражение Selec­tedControls (0) propertyName, где propertyName — фактическое имя свойства.

3. Инициализируйте свойства в событии PropertyPage_SelectionChanged() каждый раз, когда пользователь переключается на новую страницу свойств.

Если открыть окно свойств для объекта UserControl, то можно увидеть, что свойство PropertyPages имеет значение 4. Это указывает на то, что элемент управления имеет четыре страницы свойств. Для того чтобы исключить ненужные страницы свойств, вызовите диалоговое окно Connect Property Page, показанное на рис. 16.13 и очистите флажок перед соответствующим именем страницы свойств.





Рис. 16.13. В диалоговом окне вместе со стандартными страницами свойств Visual Basic показана заказная страница свойств элемента FLEXLabel

Конструирование элемента управления ActiveX теперь не представляет большой сложности. Мастер интерфейса элементов управления ActiveX берет на себя много­численные детали. Он создает скелет кода элемента управления, а разработчик пишет код, выполняющий специфические действия, которые что другие элементы делать не могут. Код, написанный разработчиком, представляет собой самый обык­новенный код приложения VB. И все же существует несколько различий между обычным приложением и элементом управления. Чем больше разработчик будет знать об этих отличиях, тем лучше он будет подготовлен к конструированию элементов управления ActiveX. Следующий раздел уделяет большее внимание именно таким различиям.


Содержание раздела