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

       

Использование мастера страницы свойств


Для использования мастера страницы свойств выполните следующие действия.

1. Откройте проект FLEXLabel, если он еще не активен.

2. Выберите команду Property Page Wizard в меню Add-Ins, чтобы открыть диалоговое окно Add Property Page.

3. Выберите VB Property Page Wizard.

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

Введение

Это вводное окно, которое, в дальнейшем, можно пропускать, отметив флажок Skip This Screen in Future.

Выбор страниц свойств

В этом окне можно выбрать, какие из стандартных страниц свойств нужны конструируемому элементу управления. Сюда входят следующие страницы.

•  StandardFont. Позволяет устанавливать шрифт.

•  StandardPicture. Позволяет устанавливать свойства изображения.

•  StandardColor. Позволяет устанавливать цвет.



Для нашего элемента управления нужна страница

StandardColor, плюс специ­альная страница, которую можно добавить, нажав кнопку Add. Мастер при этом запрашивает имя новой страницы. Введите TextProperties и нажмите кнопку Next.

Понятно, почему мастер выбрал страницу StandardColor? Элемент управления имеет свойства Backcolor и ForeColor, которые устанавливаются через страницу свойств StandardColor. Если страница свойств для этих свойств не нужна, очистите флажок, который стоит перед именем страницы свойств. Но нам она нужна для установки цвета, поэтому оставьте эту страницу отмеченной. Кроме того, можно также переименовывать страницы свойств с помощью кнопки Rename.

Связывание свойств со страницами свойств

В этом окне задаются свойства, которые необходимо отобразить на каждой странице свойств. Мастер уже связал свойства цвета со страницей StandardColor, свойства шрифтов со страницей StandardFont, а свойство Picture со страницей StandardPicture. Но специальные свойства не были связаны ни с одной страницей, потому что мастер не знает, кому они принадлежат. Добавить свойство Caption к странице Text можно следующим образом.

1. Выберите вкладку Text.

2. Выберите свойство Caption из списка слева и нажмите кнопку с одиночной стрелкой вправо, чтобы добавить свойство к странице свойств Text


3. Щелкните на кнопке Next, чтобы перейти на последнюю страницу мастера, и затем щелкните на кнопке Finish.

При более тщательном рассмотрении этого окна мастера можно обратить вни­мание на некоторую странность. В списке доступных свойств появились не все специальные свойства. Вместо этого появились имена других свойств. Мастер не может обрабатывать свойства нестандартного типа. TextAlignment и Effect — специ­альные (пользовательские) типы данных (перечислимые типы AJign и Effects, кото­рые определены в коде), поэтому они пропущены. Если нужна страница свойств, на которой разработчик может задавать вид элемента управления, нужно добавить свойства TextAlignment и Effect на страницу Text. К сожалению, нет возможности добавить эти свойства посредством мастера. Придется сделать это вручную.

Но сначала давайте посмотрим, что сделал для нас мастер. Выполните следующие действия.

1. Переключитесь на тестовую форму и щелкните правой кнопкой мыши на элементе управления FLEXLabel.

2. Из меню выберите Properties (Свойства), чтобы просмотреть две страницы свойств, показанные на рис. 16.10 и 16.11.



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



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

Страница Color выглядит хорошо, а вот страница Text Properties нуждается в улучшении. Мастер только поместил на страницу элемент Label и элемент TextBox, a теперь необходимо помимо настройки этих элементов написать соответствующий код.

Вкладка Color имеет список свойств, который содержит имена свойств, связанных с цветом. Если создать еще несколько таких свойств, то они появятся на этой же странице. Чтобы назначить новое значение свойству, сделайте одно из двух:

•  выберите свойство, а затем выберите стандартный цвет из палитры Windows, или

•  создайте свой цвет нажатием кнопки Edit Custom Color.

Новый цвет появляется перед именем свойства в списке. При нажатии кнопки Apply соответствующая часть элемента управления будет перерисована в соответствии с новой установкой. Страница Text Properties позволяет определять значение свойства Caption, вводя значение в элемент управления TextBox. Поэкспериментируйте с другими вкладками страниц свойств, чтобы посмотреть, как они себя ведут.



В окно Project мастер добавил другую папку - Property Pages. Эта новая папка содержит файл свойств Caption. Выполните на ней двойной щелчок и страницы откроются в режиме конструирования. Обратите внимание, что кнопки OK, Cancel и Apply не являются частью формы. Они принадлежат элементу управления TabStrip, который отображает страницы свойств во время выполнения (этот элемент управления не доступен и не может быть даже настроен). Кроме того, нет формы для свойств Font, Color и Picture. Это стандартные страницы свойств и они управляются Visual Basic. Модифицировать страницы, сгенерированные мастером, нельзя, однако можно создать свою страницу для выбора цвета, если уж не нравится имеющаяся.

Итак, исследуем код, созданный мастером для страницы свойств CaptionProperties.

Программа 16.10. Станица свойств CaptionProperties

Private Sub txtCaption_Change()

Changed =

True

End Sub

Private Sub PropertyPage_ApplyChanges ()

SelectedControls(0).Caption = txtCaption.Text

End Sub

Private Sub PropertyPage_SelectionChanged ()

txtCaption.Text = SelectedControls(0).Caption

End Sub

Подпрограмма txtCaption_Change() вызывается каждый раз, когда пользователь что-либо печатает в поле txtCaption. Устанавливая переменную Changed в Тruе, код разблокирует кнопку Apply (которая заблокирована до тех пор, пока свойство Caption не изменится). Visual Basic использует свойство Changed для определения момента разблокирования кнопки Apply.

Конечно, новые установки не применяются к элементу управления автоматически. Код, который фактически производит изменения, должен быть вставлен в обработчик события PropertyPages_ApplyChanges, которое вызывается каждый раз, когда нажимается кнопка Apply. Это событие и модифицирует свойства элемента управления. Поскольку страница свойств является отдельной формой, она не может знать, какой элемент управления выбран в данный момент (поскольку на форме может присутствовать несколько экземпляров одного элемента управления). Из-за этого для доступа к выбранному элементу управления код использует объект SelectedControls() - семейство, которое представляет собой все выбранные элементы управления на форме. Заметим, что элемент семейства с индексом 0 является пер­вым выбранным элементом управления.

И, наконец, событие PropertyPage_SelectionChanged() вызывается всякий раз, когда пользователь выбирает другую вкладку страницы свойств. Это хорошее место для размещения кода инициализации. Код обработчика процедуры PropertyPage_SelectionChanged() присваивает текущие установки свойству Caption выбранного элемента управления элементу TextBox, в котором пользователю предлагается ввести новое значение свойства.


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