Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
к экзамену.doc
Скачиваний:
5
Добавлен:
27.10.2018
Размер:
141.82 Кб
Скачать

26. Динамический обмен данными dde. Методы dde. Пример (фрагмент).

События DDE

  1. Событие LinkNotify

Событие LinkNotify происходит, как только в исходном приложении изменяются связанные данные. Сообщение источника об изменении данных поступает в Visual Basic и анализируется в соответствующей процедуре:

Private Sub Form_Load ()

Textl.LinkMode = vbLinkNone

Textl.LinkTopic = "Excel I[mapl] Лист!"

Textl.Linkltem 3 "R1C1"

Textl.LinkMode = vbLinkNotify End

Sub

Private Sub Textl_LinkNotify()

iReply = MsgBox("Обновить?", vbYesNo)

If iReply = vbYes Then

Textl.LinkRequest

End If End

Sub

В процедуре Form_Load создается DDE-связь между приложением Excel и элементом у правления Textl. Если в и сходном приложении данные изменяются, появляется окно сообщений (МеззадеВох), в котором пользователь может указать, следует ли обновлять данные. Событие LinkNotify вызывается только при наличии связи с уведомлением (vbLinkNotify) для соответствующего элемента управления,

а не автоматической связи или связи по запросу.

  1. Событие LinkError

Событие LinkError наступает при возникновении ошибки в DDE-связи, например если закрылся источник, в то время как связь существует, или при попытке создать более 128 связей в приложении. Другие ошибки, иногда возникающие при создании связи, рассматриваются как обычные ошибки времени выполнения.

Private Sub Form_Load () On Error Goto appstart

Textl.LinkMode 3 vbLinkNone Textl.LinkTopic "=

appname S "I" & topic Textl.Linkltem 3 item

Textl.LinkMode = vbLinkAutomatic Exit Sub

appstart:

If Err.Number = 282 Then

ret» = Shell(appname & ".exe" & " /" & topic, 6) Resume Else

MsqBox Err.Description Stop End If

End Sub

В этом примере предпринимается попытка установить связь с приложением Visual Basic. Если возникает определенная ошибка выполнения (приложение не запущено), то запускается требуемое приложение с нужным открытым документом.