Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Основные свойства и методы объектов Clipboard. Примеры




Сейчас мы коротенько поговорим о довольно-таки нужных текстовых свойствах, тем более, что мы будем их использовать далее при работе с объектом Clipboard. Мы уже использовали свойство SelText в прошлой главе, но на этом не остановимся. Если мы выделим кусочек текста в Text, то мы можем получить (или установить) об этом выделенном фрагменте некоторую полезную информацию как раз с помощью этих свойств:

.SelLength — возвращает или устанавливает число выделенных символов. (синтаксис объект.SelLength [= число выбранных символов])
.SelStart — возвращает или устанавливает начало выделенного текста, а если текст не выбран, то указывает положение места вставки. (синтаксис объект.SelStart [= положение начала вставки])
.SelText — возвращает или устанавливает строку, в которой содержится выделенный текст. Если никаких символов не выбрано, то представляет строку нулевой длины ("").(синтаксис объект.SelText [= текст выделения]).

Наиболее часто эти свойства как раз и используются с объектом Clipboard для операций вставки и вырезания. Причем установка. SelLenght меньше нуля приводит к ошибке выполнения. Изменение .SelStart устанавливает .SelLength в значение ноль. Если установить .SelLength больше, чем длина текста, то оно автоматически станет равной длине текста. Установка .SelText в новое значение устанавливает .SelLength в ноль.
Ну вот, теперь можно двигать дальше.

Объект Clipboard

С системным буфером обмена данных Clipboard мы сталкиваемся постоянно. Именно в него помещаются данные приложения при использовании операций Cut (Вырезать) и Copy (Копировать) и из него берутся при операции Paste (Вставить) в меню Edit, которое есть в практически любой виндусовой программе. Буфер обмена представляет своего рода промежуточное место для хранения данных, которое позволяет, не устанавливая связь между приложениями, тем не менее, переносить данные одного типа из одной программы в другую.
Буфер обмена для всего Windows один. Забрав в буфер данные одного приложения, а затем другого, мы обнаружим, что в буфере хранятся лишь данные последней операции Cut или Copy. Это вызвано тем, что в большинстве случаев, чтобы в буфере не хранилось данных разных приложений, перед загрузкой данных в буфер программа-донор обычно производит его очистку. Посмотреть содержимое буфера можно с помощью утилиты CLIPBRD.EXE, которая обычно имеется в директории C:\Windows\System32 или аналогичной (в зависимости от Windows, установленной на твоем компьютере). В буфер обмена можно забрать и текст и картинку, потому что он поддерживает разные форматы данных.
Из VB доступ к буферу организуется с помощью объекта Clipboard. Методы объекта практически те же, что и разобранные нами в главе 19 с объектом DataObject, однако повторенье - мать ученья (банальность). Они представлены в нижеследующей таблице:

 

Методы объекта Clipboard
Clipboard.SetText data, format Помещает текстовые данные в буфер обмена, где data - строка данных, помещаемая в Clipboard Значение format для текстовых данных может принимать следующие значения: vbCFLink (&HBF00) - Диалоговая информация DDE vbCFRTF (&HBF01) - Текст в формате RTF(Rich Text Format) vbCFText (1) - Текст (Установка по умолчанию)
Clipboard.GetText (format) Возвращает текстовые данные из буфера обмена. Необязательный. Если ожидаемого формата в буфере нет, то возвращается пустая строка.
Clipboard.SetData data, format Помещает графические данные в буфер обмена, где data - графическое изображение, помещаемое в Clipboard. Устанавливается функцией LoadPicture либо свойствами Picture. Значение format для графических данных может принимать следующие значения: vbCFBitmap (2) - Растр (.bmp-файлы) vbCFMetafile (3) - Метафайл (.wmf-файлы) vbCFDIB (8) - Независимые от устройств растровые рисунки (DIB) vbCFPalette (9) - Цветовая палитра vbCFEMetafile (14) - Расширенный метафайл (.emf-файлы) vbCFFiles (15) - Список имен файлов (Microsoft Windows Explorer)
Clipboard.GetData (format) Возвращает графические данные из буфера обмена. Если значение format опущено, то подбирается подходящий формат. Если графический формат не соответствует ожидаемому, то ничего не возвращается.
Clipboard.GetFormat (format) Возвращает логические True или False, в зависимости от содержащихся в буфере данных. Для проверки более чем одного метод вызывается повторно. Значение format может принимать следующие значения: vbCFLink (&HBF00) - Диалоговая информация DDE vbCFText (1) - Текст vbCFBitmap (2) - Растр (.bmp-файлы) vbCFMetafile (3) - Метафайл (.wmf-файлы) vbCFDIB (8) - Независимые от устройств растровые рисунки (DIB) vbCFPalette (9) - Цветовая палитра vbCFEMetafile (14) - Расширенный метафайл (.emf-файлы) vbCFFiles (15) - Список имен файлов (Microsoft Windows Explorer)
Clipboard.Clear Очищает содержание системного буфера обмена.  

Использовать эти методы очень просто. Для примера создадим новый exe-проект и положим на него два TextBox'а и два PictureBox'а. В качестве управления нашими процессами с помощью Редактора меню создадим простое меню Edit. Подробно о создании меню написано в Главе 9.
Имя нашего меню будет mnuEdit, а строками
mnuCut - Вырезать
mnuCopy - Копировать
mnuPaste - Вставить
mnuDelate - Удалить
Вообще-то у TextBox'а есть свое контекстное меню, но мы сделаем свое общее.

Ну сперва в процедуре Form_Load загрузим в Text1 и Picture1 данные, чтобы нам было с чем работать. В примере я использовал маленькую картинку P00027.jpg. (Кстати поставь свойства TextBox'ов Multiline=True)

Option Explicit 'хоть у нас и не будет ни одной переменной, но дело принципа
Private Sub Form_Load()
Text1 = "Проще Visual Basic ничего нету"
Picture1 = LoadPicture(App.Path & "\P00027.jpg")
End Sub

Начнем с процедуры для первого пункта подменю "Вырезать" - mnuCut, которая должна копировать данные в буфер и затем очищать объект (Text или Picture):

Private Sub mnuCut_Click()

Сперва нам надо очистить буфер, чтобы в нем не осталась другая информация. Используя метод .Clear это предельно просто.




Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 816; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.