Основы программирования

Офисное программирование - Объект DataObject
Индекс материала
Офисное программирование
Осноные седения о программироании на VBA
Определения
Обзор типов данных VBA
Переменные
Константы
Математические функции
Операторы и выражения
Логические операторы
Повторение действий: циклы
Объект UserForm
Использование форм
Задачи на закрепление материала
Массивы, процедуры, функции
Работа с различными типами данных
Функции работы со строками
Процедуры и функции VBA
Макросы
Создание VBA-программ
Элементы управления ComboBox, OptionButton и Frame
Элементы управления MultiPage, ScrollBar, SpinButton
Набор страниц MultiPage
Полоса прокрутки ScrollBar
Объект DataObject
Реализация технологии DragAndDrop
Программирование на VBA в Word
События объекта Document
Объекты Range и Selection
Работа с буфером
Форматирование документа
Создание кнопки или панели в Word
Автоматизация стандартных документов
Задачи на закрепление материала
Создание VBA-программ
Создание модуля Печать
Создание модулей работы кнопок
Особенности использования VBA в Excel
Метод AutoFilter
Метод Sort
Использование метода GoalSeek
Использование методов AutoFill
Математическая модель решения задачи
Разработка интерфейса пользователя
Финансовые функции
Построение диаграмм средстами VBA
Базы данных в Excel
Конструирование пользовательского интерфейса
Конструирование интерфейса. Презентация
Создание собственного головного меню
Добавление подменю
Добавление выпадающих меню
Все страницы

 

 

Описание объекта 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 'инициализация объекта

NumClick = 0

'число щелчков

TextBox1.Text = "Пример переноса данных с помощью

DataObject»

End Sub

 

4. При последовательных щелчках по командной кнопке будут происходить последовательно действия, описанные в программе:

 

Private Sub CommandButton1_Click()

Select Case NumClick

Case 0

NewData.SetText TextBox1.Text

Label1.Caption = «Из первого поля в DataObject»

Case 1

NewData.PutInClipboard

Label1.Caption = «Из DataObject в буфер обмена»

Case 2

TextBox2.Paste

Label1.Caption = «Из буфера обмена во второе поле»

End Select

NumClick = NumClick + 1

If NumClick = 3 Then NumClick = 0

End Sub

 

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

Примечание. Перенос информации из одного поля в другое можно осуществить и через буфер обмена, минуя DataObject. Для копирования данных из поля ввода в буфер обмена можно использовать метод Сору.

 



 
Игрушки замок принцессы ссылка.