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

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

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

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

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

объект. PutInClipboard

переносит данные из DataObject, имеющие текстовый формат 1, в буфер обмена.

Пример 28. Форма содержит два текстовых поля, в одном из них программно отображается текст, который при помощи методов объекта dataobject необходимо перенести (перекопировать) во второе текстовое поле. Данное действие происходит после нажатия на кнопку «Копировать», причем все производимые действия программы отображаются в соответствующей метке на форме (рис. 58).

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

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

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

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

3. Пропишите при инициализации окна в поле TextBox1 текстовую информацию и проинициализируйте глобальные переменные:

Public NewData As DataObject

Public NumClick As Integer

Private Sub UserForm_Initialize()

Set NewData = New DataObject 'инициализация объекта

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату