KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Ирина Фризен - Офисное программирование

Ирина Фризен - Офисное программирование

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Ирина Фризен, "Офисное программирование" бесплатно, без регистрации.
Перейти на страницу:

Рис. 48. Рамка элемента page


Если необходимо добавить еще одну вкладку в режиме конструктора, то необходимо щелкнуть правой кнопкой мыши по последней вкладке (странице) и выбрать команду New Page (рис. 49).


Рис. 49. Добавление новой страницы


Если необходимо переименовать страницу, ввести всплывающие подсказки и установить номер активной по умолчанию страницы, необходимо выбрать команду Rename (рис. 49), в результате которой появляется диалоговое окно, где устанавливаются перечисленные свойства (рис. 50 и 51).


Рис. 50. Установление свойств вкладки


Пример 25. Создать форму, включающую в себя ряд вкладок (страниц), содержащих вопросы некоторого теста. На каждой странице находятся очередной вопрос и кнопка «Ответ», фиксирующая выбор правильного (неправильного) ответа. После перехода на следующую страницу (щелчок по корешку страницы с соответствующим именем) действия повторяются. Итоговая страница содержит кнопку «Результат», которая выводит правильность ответов и сумму набранных баллов (1 правильный ответ = 1 балл).


Рис. 51. Свойства в действии


Создать программу, выполняющую все требования примера.

Технология выполнения

1. Запустите приложение Word и сохраните документ.

2. Перейдите в редактор VBA и создайте форму, содержащую 4 страницы (рис. 52).


Рис. 52. Первая страница теста


3. Оформите первую страницу (рис. 52) и обработайте кнопку «Ответ».

Dim a As Integer

Private Sub CommandButton1_Click()

If OptionButton3.Value = True Then

a = a + 1

Label11.Caption = «Ответ верен»

Else

Label11.Caption = «Oтвет неверен»

End If

End Sub

4. Оформите вторую страницу теста (рис. 53) и обработайте кнопку «Ответ».

Private Sub CommandButton2_Click()

If OptionButton5.Value = True Then

a = a + 1

Label12.Caption = «Ответ верен»

Else

Label12.Caption = «Ответ неверен»

End If

End Sub

Рис. 53. Вторая страница теста


5. Оформите третью страницу теста (рис. 54) и обработайте кнопку «Ответ».


Рис. 54. Третья страница теста

Private Sub CommandButton3_Click()

If OptionButton10.Value = True Then

a = a + 1

Label13.Caption = «Ответ верен»

Else

Label13.Caption = «Ответ неверен»

End If

End Sub

6. Оформите четвертую страницу теста (рис. 55) и обработайте кнопку «Результат».

Private Sub CommandButton4_Click()

Label15.Caption = "вы набрали " & a & «балл(а)»

End Sub

Рис. 55. Итоговая страница теста


Примечание. Напоминаем, что все предлагаемые листинги примерные и их можно и нужно редактировать по своему усмотрению.

7. Откомпилируйте программу и запустите на выполнение.

Полоса прокрутки ScrollBar

Элемент управления ScrollBar представляет собой вертикальную или горизонтальную полосу, по краям которой расположены кнопки прокрутки, а внутри перемещается бегунок. Значение Value, устанавливаемое в полосе прокрутки или возвращаемое ей, – число, определяемое положением бегунка и границами, определенными в свойствах Min и Мах. Рекомендуемые значения этих границ – от –32 767 до + 32 767 (по умолчанию установлен диапазон [0, 32 767]).

Обычно полоса прокрутки используется в паре с другим элементом управления (textbox), в котором она может отображать или от которого может получать свое значение.

Свойства полосы прокрутки следующие.

Горизонтальная или вертикальная ориентация полосы прокрутки определяется свойством orientation. При его значении по умолчанию fmorientationauto = –1, ориентация полосы определяется автоматически в зависимости от ее размера по горизонтали и вертикали (больший размер задает ориентацию). Значение fmorientationvertical = 0 задает вертикальную ориентацию полосы, fmorientationhorizontal = 1 – горизонтальную.

Свойства largechange и smallchange определяют, на сколько изменится значение value при одном щелчке поверхности полосы между кнопкой прокрутки и бегунком в первом случае и при щелчке кнопки прокрутки – во втором. Эти же свойства указывают, на сколько при этом смещается бегунок. По умолчанию оба свойства равны 1. Рекомендуемая область значений обоих свойств – от –32,767 до 32,767.

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

Свойство proportionalthumb определяет размер бегунка: true – размер бегунка пропорционален размеру области прокрутки (это значение по умолчанию); false – система определяет фиксированный размер бегунка.

Пример 26. Создать форму, содержащую два элемента scrollbar, два текстовых поля и кнопку, выводящую результат вычисления в метку на форме. Программно отражать значения в текстовых полях формы при движении бегунка. После нажатия на кнопке «Вычислить» программа считывает значения с текстовых полей, переводит эти значения в числовые и суммирует. Результат отражается в соответствующей метке на форме.

Технология выполнения

1. Активизируйте приложение Word и сохраните документ.

2. Перейдите в редактор VBA и создайте форму (рис. 56).


Рис. 56. Форма примера 26 в режиме конструктора и рабочем режиме


3. Обработайте элементы ScrollBar и кнопку «Вычислить».

Dim a, b, c As Integer

Private Sub CommandButton1_Click()

c = a + b

Label4.Caption = «Сумма с=» & c

End Sub

Private Sub ScrollBar1_Change()

TextBox1.Text = ScrollBar1.Value

a = Val(TextBox1.Text)

End Sub

Private Sub ScrollBar2_Change()

TextBox2.Text = ScrollBar2.Value

b = Val(TextBox2.Text)

End Sub

4. Откомпилируйте программу и запустите форму на выполнение.

Счетчик SpinButton

SpinButton (счетчик, ворот) позволяет пользователю увеличивать и уменьшать числовой параметр до получения требуемого значения. Один щелчок кнопки прокрутки увеличивает или уменьшает значение свойства Value на величину, заданную свойством SmallChange. Как и для ScrollBar, интервал изменения числовой характеристики определяется значениями свойств Min и Мах, вертикальная или горизонтальная ориентация счетчика – свойством Orientation, а задержка между повторными событиями Change – свойством Delay.

Чтобы изменения Value были видны пользователю, счетчик надо связать с полем ввода или с меткой в процедуре обработки события Change, так же как для полосы прокрутки.

Пример 27. Создать форму, содержащую два элемента spinbutton, два текстовых поля и кнопку, выводящую результат вычисления в метку на форме. Программно отражать значения в текстовых полях формы при движении бегунка. После нажатия на кнопке «Вычислить» программа считывает значения с текстовых полей, переводит эти значения в числовые и перемножает. Результат вычисления отражается в соответствующей метке на форме.

Технология выполнения

1. Активизируйте приложение Word и сохраните документ.

2. Перейдите в редактор VBA и создайте форму (рис. 57).


Рис. 57. Форма примера 27 в режиме конструктора и в рабочем режиме


3. Обработайте элементы SpinButton и кнопку «Вычислить».

Dim a, b, c As Integer

Private Sub CommandButton1_Click()

c = a * b

Label4.Caption = «Произведение с =» & c

End Sub

Private Sub SpinButton1_Change()

TextBox1.Text = SpinButton1.Value

a = Val(TextBox1.Text)

End Sub

Private Sub SpinButton2_Change()

TextBox2.Text = SpinButton2.Value

b = Val(TextBox2.Text)

End Sub

4. Откомпилируйте программу и запустите форму на выполнение.

4.4. Объект DataObject[3]

Описание объекта DataObject

Этот объект не является элементом управления, но участвует в операциях перетаскивания выделенных текстов из одного элемента управления в другой. В нем одновременно могут храниться несколько текстовых данных в разных форматах. Когда в DataObject помещается новый текст с имеющимся в нем форматом, то прежний текст с этим форматом заменяется на новый.

Поведение DataObject похоже на поведение буфера обмена. Однако DataObject существует только в момент работы приложения и исчезает после ее завершения, а данные в буфере обмена при этом не теряются, DataObject может хранить только текстовые данные, а буфер обмена – и графические. С другой стороны, DataObject – настоящий OLE-объект и поддерживает, в отличие от буфера обмена, операции перетаскивания текста.

Текст заносится в DataObject методом SetText, а извлекается оттуда методом GetText:

объект. SetText(StoreData [, format])

и

Строка = объект. GetText([format]),

где объект – объект – владелец метода;

StoreData – текст, который надо запомнить в объекте;

format – это необязательный параметр, задающий «формат» данных (1 соответствует стандартному текстовому формату, а другие числа и строки соответствуют пользовательским форматам).


Если параметр format в вызове SetText явно не указан, то запоминаемому тексту присваивается формат стандартного текста 1. Так как для каждого формата DataObject содержит лишь один текст с этим форматом, то фактически формат играет роль ключа, с помощью которого текст заносится и извлекается из DataObject. Метод GetFormat позволяет узнать, имеется ли в объекте DataObject текст определенного формата:

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*