Офисное программирование | страница 49



Чтобы изменения 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 соответствует стандартному текстовому формату, а другие числа и строки соответствуют пользовательским форматам).