Смекни!
smekni.com

Основы программирования в среде Visual Basic for Application VBA (стр. 6 из 21)


2.8.8 Переключатель

Элемент управления OptionButton (переключатель) создается с помощью кнопки Переключатель (OptionButton) (рис. 2.16). Он позволяет выбрать, один из нескольких взаимоисключающих параметров или действий. Переключатели обычно отображаются группами, обеспечивая возможность выбора альтернативного варианта.

Рисунок 2.16 Переключатель в форме.

Приведем наиболее часто используемые свойства элемента управления OptionButton.

Value Возвращает True, если переключатель выбран и False в противном случае
Enabled Допустимые значения: True (пользователь может выбрать переключатель) и False (в противном случае)
Visible Допустимые значения: True (переключатель отображается во время выполнения программы) и False (в противном случае)
Capture................................................... Надпись, отображаемая рядом с переключателем

Рассмотрим способ использования переключателей на примере классической игры «Орел и Решка». Выбирая один из двух переключателей, игрок загадывает один из вариантов: орел (1 для компьютера) или решка (0 для компьютера). Не зная о выборе игрока, компьютер синтезирует с равной вероятностью либо 0, либо 1, что моделирует бросание монеты. Если игрок угадал правильную сторону монеты, подброшенную компьютером, то он выигрывает. В противном случае выигрывает компьютер. Компьютер информирует игрока о результате игры. На рис. 2.17 приведено диалоговое окно, отображаемое на экране в случае проигрыша игрока.

Рисунок 2.17 Диалоговое окно, отображаемое на экране при проигрыше игрока

Для создания приложения, моделирующего игру «Орел и Решка», с помощью пользовательской формы UserForm1 создадим диалоговое окно, показанное на рис. 2.18, а в модуле UserForm1 введем следующую процедуру, синтезирующую отклик на нажатие кнопки Бросание монеты.

Рисунок 2.18 Диалоговое окно игры Орел-Решка

Private Sub CommandButtonl_Click()

' Генерация с равной вероятностью либо 0 (решка), либо 1 (орел),

' т. е. моделирование бросания монеты

Randomize

Монета = Int(2 * Rnd)

' Сравнение результата бросания монеты компьютером

' с ситуацией, если игрок загадал "Орел"

If OptionButtonl.Value = True Then

If Монета = 0 Then MsgBox "He везет. Займись-ка лучше изучением VBA"

If Монета = 1 Then MsgBox "Везунчик. Поздравляю, ты выиграл."

End If

' Сравнение результата бросания монеты компьютером

' с ситуацией, если игрок загадал "Решка"

If OptionButton2.Value = True Then

If Монета = 1 Then MsgBox "He везет. Займись-ка лучше изучением VBA"

If Монета = 0 Then MsgBox "Везунчик. Поздравляю, ты выиграл"

End If

End Sub

2.8.9 Рамка

Элемент управления Frame (рамка) создается с помощью кнопки Рамка (Frame) (рис. 2.19). Он используется для визуальной группировки элементов управления. Основным свойством рамки является Capture, отображающее надпись рамки.

2.8.10 Флажок и выключатель

Элемент управления СheckBox (флажок) создается с помощью кнопки Флажок (Checkbox) (рис. 2.20). Этот элемент управления предоставляет пользователю возможность выбора. Флажок обычно имеет два состояния: установленное и сброшенное, но может настраиваться на выбор из трех альтернатив. Флажок имеет те же свойства Value, Enabled, Visible и Capture, что и переключатель. Кроме того, флажок обладает уникальным свойством TripleState, позволяющим производить выбор из трех альтернатив. Свойство TripieState может принимать два значения: False (выбор из двух альтернатив True и False) и True (выбор из трех альтернатив True, False и Null).


Рисунок 2.19 Рамка в форме

Рисунок 2.20 Флажок и выключатель в форме

Элемент управления ToggleButton (выключатель) создается с помощью кнопки Выключатель (ToggleButton) (рис. 2.20). Этот элемент управления предоставляет пользователю те же возможности, что и флажок.

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

Private Sub UserForm_Initialize()

ToggleButtonl.Value = True ToggleButton2.Value = False ToggleButton3.TripleState = True

ToggleButton3.Value = Null

CheckBoxl.Value = True CheckBox2.Value = False CheckBox3.TripleState = True CheckBox3.Value = Null

End Sub


Рисунок 2.21 Три допустимых состояния выключателя и флажка

2.8.11 Рисунок

Элемент управления Image (рисунок) создается с помощью кнопки Рисунок (Image). Он используется для отображения графических файлов в формате bmp, cur, gif, ico, jpg и wmf. Перечислим некоторые из его свойств, используемых для управления выводом изображения.

AutoSize Допустимые значения: True (рисунок автоматически изменяет размер для того, чтобы отобразить изображение целиком) и False (в противном случае).
Picture Задает отображаемый графический файл. Используется с функцией LoadPicture.Синтаксис:Picture = LoadPicture(ПолноеИмяФайла) – ПолноеИмяФайла – полное имя отображаемого графического файла
PictureSizeMode Устанавливает масштабирование рисунка. Допустимые значения: – fmPictureSizeModeClip (не помещающиеся в границах объекта части рисунка обрезаются);– fmPictureSizeModeStretch (рисунок масштабируется так, чтобы он занимал всю поверхность объекта); – fmPictureSizeModeZoom (рисунок масштабируется с cохранением относительных размеров так, чтобы он помещался целиком внутри объекта)
PictureAlignment Устанавливает расположение рисунка внутри объекта. Допустимые значения:– fmPictureAlignmentTopLeft (в верхнем левом углу); – fmPictureAlignmentTopRight (в верхнем правом углу);– fmPictureAlignmentCenter (в центре); – fmPictureAlignmentBottomLeft (в нижнем левом углу); – fmPictureAlignmentBottomRight (в нижнем правом углу)
PictureTiling Допустимые значения: True (объект покрывается мозаикой из рисунка) и False (в противном случае)

Приведем пример размещения рисунка в объекте (рис. 2.22). Во всех четырех случаях рисунок выравнивается по верхнему левому краю объекта. В первом случае изображение пропорционально масштабируется так, чтобы целиком заполнить область объекта. Во втором случае масштабирование непропорциональное, в третьем рисунок размещается произвольно, в четвертом область объекта покрывается мозаикой из рисунков.

Private Sub UserForm_Initialize()

With Image1

.PictureAlignment = fmPictureAlignmentTopLeft

.PictureSizeMode = fmPictureSizeModeZoom

.Picture = LoadPicture("c:\Face.bmp")

End With

With Image2

.PictureAlignment = fmPictureAlignmentTopLeft

.PictureSizeMode = fmPictureSizeModeStretch

.Picture = LoadPicture("с:\Face.bmp")

End With

With Image2

.PictureAlignment = fmPictureAlignmentTopLeft .PictureSizeMode = fmPictureSizeModeStretch

Picture = LoadPicture("c:\Face.bmp")

End With

With Image3

.PictureAlignment = fmPictureAlignmentTopLeft .PictureSizeMode = fmPictureSizeModeClip

.Picture = LoadPicture("c:\Face.bmp")

End With

With Image4

.PictureAlignment = fmPictureAlignmentTopLeft

.PictureTiling = True

.Picture = LoadPicture("c:\Face.bmp")

End With

End Sub

Рисунок 2.22 Четыре примера размещения рисунка

2.8.12 Ссылки на ячейки и диапазоны

Элемент управления RefEdit (редактирование ссылок) создается с помощью кнопки RefEdit (рис. 2.23). Элемент управления RefEdit обычно используется для ввода ссылок на ячейки или диапазоны. Основным свойством элемента управления RefEdit является Text, возвращающее строку, введенную в поле ввода этого элемента управления.

Рисунок 2.23 Элемент управления RefEdit в форме


2.8.13 Набор страниц

Элемент управления MultiPage (набор страниц) создается с помощью кнопки Набор страниц (MultiPage) (рис. 2.24). Этот элемент управления реализует многостраничные диалоговые окна. Заголовки страниц отображаются на вкладках. Переход от страницы к странице осуществляется выбором вкладки посредством щелчка кнопкой мыши.

Рисунок 2.24 Набор страниц в форме

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

Объект MultiPage содержит в себе семейство Pages, являющееся набором всех страниц, входящих в этот объект.

Перечислим свойства объекта MultiPage.

Value иBoundValue Возвращают номер активной страницы. Нумерация производится с нуля
MultiRow Допустимые значения: True (если ярлыки не помещаются в одну строку, то они выводятся в несколько строк) и False (если ярлыки не помещаются в одну строку, то появляется полоса прокрутки, позволяющая переходить от страницы к странице)
Selectedltem Возвращает выбранную страницу

Семейство Pages, содержащее все страницы, входящие в объект MultiPage, имеет единственное свойство Count, возвращающее число элементов семейства. Кроме того, у семейства Pages имеются следующие методы.

Add Создаетновуюстраницу. Синтаксис:Set Object = object.Add( [ Name [, Caption [, index]]]) object – семейство Pages Name – имя страницыСaption – текст, отображаемый на ярлыке страницыindex – номер страницы, нумерация страниц производится с 0
Clear Удаляет все страницы из семейства Pages
Remove Удаляет страницу из семейства Pages
Item Возвращает страницу со специфицированным индексом. Синтаксис: Set Object = object.Item(collectionindex)

2.8.14 Набор вкладок