Курс лекций по V B 5.0Рефераты >> Программирование и компьютеры >> Курс лекций по V B 5.0
Можно узнать тип данных в буфере с помощью метода GetFormat:
Clipboard GetFormat (Format %), где Format % - значение или константа из таблицы. Возвращает значение True, если данные из буфера имеют соответствующий формат.
If Clipboard.GetFormat (2) Then MsgBox “Побитовое изображение”.
Для получения изображения из буфера используется метод GetData:
Clipboard. GetData (Format %), где Format %
Пример.
If Clipboard. GetFormat (VbCFText) Then
txtUser.Text = Clipboard.GetText ( )
Else If Clipboard.GetFormat (VbCFBitmap) Then
pic My.Picture = Clipboard. GetData(VbCFBitmap)
Else If Clipboard.GetFormat (VbCFMetafile) Then
pic My.Picture = Clipboard. GetData(VbCFMetafile)
Else If Clipboard.GetFormat (VbCFDib) Then
pic My.Picture = Clipboard. GetData(VbCFDib)
Else MsgBox “Не определн графический объект”
End If
Копирование изображения из графического окна в буфер обмена в формате побитового изображения:
Private Sub PictureCopy_Click( )
Clipboard.Clear
Clipboard.SetData Pic.My.Picture,2
DDE
При использовании метода DDE одно приложение Windows (клиент) запрашивает у другого приложения (сервера) какую-либо информацию. Для VB в качестве сервера может выступать текстовая форма, а клиентами могут быть поля ввода, графические окна или надписи. Однако элементы управления на форме могут также передавать информацию с помощью своих свойств. Любое приложение может выступать одновременно и как клиент и как сервер: Excel?VB?WinWord.
Для установки связи нужно знать имя соответствующего приложения, например, WinWord, Excel, имя DDE для формы VB соответствующего имени исполняемого файла, либо имени проекта без расширения, если в среде разработки.
Кроме того, задается предмет DDE-связи, в частности, специфические имена файлов. Например для Excel это .xls и .xle.
И третье, указывается, какая информация передается - элемент данных DDE-связи. Например для Excel-сервера DDE элементом данных будет ячейка . Для VB как сервера DDE элементом данных будут графические окна, поля ввода, надписи.
Свойства DDE.
LinkTopic формат: имя сервера \ имя приложения, например
Excel\ C:\ EXCEL\ Sheet1.xls
Можно устанавливать значение этого свойства для поля ввода, графического окна, надписи. Изменение значения свойства приводит к закрытию всех связей с данным приложением. Это позволяет приложению-клиенту переключаться на другие объекты.
LinkItem - определяет конкретные данные, которые будут передаваться от сервера к клиенту. Например, содержание ячейки первого столбца первой строки листа Excel Ric1/
Синтаксис: [имя формы, ] имя элемента управления.LinkItem = Item $
Item $ - строкове выражение, которое определяет элемент данных сервера.
LinkMode - режимя связи: LinkMode = 1 - горячая связь, LinkMode = 2 - холодная связь, LinkMode = 0 нет (связь разрывается)
Горячая связь - сервер посылает данные, содержащиеся в элементе связи DDE, когда эти данные изменяются в приложении-сервере; холодная - клиент должен требовать новой передачи данных.
События DDE
LinkOpen - генерируется всякий раз при установлении связи (например, информация пользователю)
Private Sub picMy_LinkOpen (Cancel As Integer)
M$ = “DDE связь установлена с” + PicMy.LinkTopic “поданным”+
M$ = M$ + PicMy.LinkItem
MsgBox
End Sub
LinkClose - завершение сеанса DDE;
для формы - Private Sub frmMy_LinkClose( ),
для элемента управления Private Sub txtMy_LinkClose(Index As Integer)
LinkExecute - если клиенту необходима какая-либо информация от сервера, когда клиент посылает команду серверу.
Private Sub Form_LinkExcecute(Command As String, As Integer )
LinkError - для обработки ошибок в сеансе связи
Private Sub FormMy_LinkError(LinkErr As Integer )
Методы DDE
LinkExecute - для посылки команд серверу DDE
элемент управления.LinkExecute Командная строка
LinkPoke - пересылка содержимого любого элемента управления DDE-клиента серверу.
Например, txtMy.LinkPoke (посылает содержание .Text)
LinkRequest - посылка запроса DDE-серверу.
LinkMode = 2
txtMy.LinkRequest - запрос на пересылку информации в свойство Text
LinkSend - если форма выступает в качестве DDE-сервера и необходимо послать содержание окна изображения.
picMy.LinkSend (при внесении существенных изменений в изображении).
OLE
OLE, сокращение от object linking and embedding (связывание и встраивание объектов), сначала рассматривалась как технология, дополняющая и расширяющая динамический обмен данными DDE. Впоследствии она далеко ушла от своего начального предназначения. В частности, сейчас этот термин рассматривается отдельно от других и имеет собственное предназначение.
Одним из отличий OLE от DDE является то, что переданный объект полностью сохраняет свой внешний вид и свойства, которыми он обладал в создавшем его приложении. Т.е. электронные таблицы представляются как электронные таблицы, текстовые документы выглядят так же, как они выглядели в текстовом процессоре и т.д. После того как в проект Visual Basic добавляется контейнерный элемент OLE, по сути дела создается мост, связывающий пользователя с другим приложением Windows, и этот элемент выглядит точно так же, как он выглядел в другом приложении.
При работе с OLE первым и самым важным понятием является объект. Объект представляет собой данные, которые поставляются приложением Windows, поддерживающим OLE, например, для Excel это электронная таблица (или ее часть). Для работы с объектами OLE необходимо использовать переменные типа Object (см. главу II), а для передачи информации в эти объекты используется тип данных Variant.
Для понимания смысла связывания представим себе группу, совместно работающую над этой книгой. Кроме автора, в работе принимают участие технический редактор, помощник редактора, корректор и многие другие. Наиболее эффективным способом работы над книгой для такой группы будет использование единого экземпляра документа с возможностью внесения изменений в текст книги каждым участником рабочей группы. Заметим, что необходимо использовать один экземпляр книги (например, на центральном сервере); в этом случае группе не придется беспокоиться о том, что какие-то важные исправления будут пропущены. (Выражаясь на жаргонном языке, это позволяет работать в большей степени параллельно, чем последовательно, нескольким участникам группы.) В случае со связанными объектами данные остаются в приложении, которое их создало. Представим себе процесс связывания как прикрепление связи к уже существующим данным. Технически при связывании в приложение Visual Basic вставляется значок, указывающий на связь, а изображение данных cохраняется в элементе управления OLE.
Идея встраивания находит применение в том случае, когда создается документ, объединяющий различные приложения Windows "под одной крышей". Встраивание в OLE позволяет пользовательским элементам встраивать внутрь себя данные. Когда Visual Basic обращается к управляющему элементу OLE, элемент переключается обратно в приложение, в котором он был создан, что позволяет использовать возможности "родного" приложения для внесения в элемент необходимых изменений.