Литмир - Электронная Библиотека
Содержание  
A
A

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).

Офисное программирование - i_086.png

Рис. 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).

Офисное программирование - i_087.png

Рис. 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 текст определенного формата:

BooleanVar = объект. GetFormat(format)

Переменная BooleanVar получит значение True, если данные с указанным форматом входят в объект. Объект DataObject может обмениваться данными с буфером обмена посредством методов GetFromClipboard и PutInClipboard. Оператор

String = объект. GetFromClipboard()

помещает содержимое буфера обмена в DataObject, а вызов

объект. PutInClipboard

вернуться

3

Теоретический материал опирается на материал книги Биллиг В.А. VBA в Office 2000. Офисное программирование. М.: Издательско-торговый дом «Русская Редакция», 1999.

19
{"b":"95947","o":1}