|
||||||||
|
Использование OLE. Вставка объектов OLE из буфера обмена
Вставку реализует специальный диалог, вызываемый функцией:
Параметры этой функции означают следующее:
Функция присваивает значения трем параметрам:
Функция возвращает True, если пользователь нажал в диалоге кнопку ОК или клавишу <Enter>. Логическая взаимосвязь между значениями Format, Handle и PInitInfo такая: если пользователь решил присоединить или встроить имеющийся в буфере обмена объект, то в параметре Format возвращается значение ?1. В этом случает дескриптор недействителен, а смысл имеет только параметр PInitInfo; если вставляются имеющиеся в буфере обмена данные одного из обычных форматов, то параметр Format содержит его идентификатор, Handle ? дескриптор соответствующих данных, a PInitInfo равен nil.Перед тем, как вызывать PasteSpecialDIg, нужно убедиться в целесообразности этого, вызвав функцию:
Она проверяет, есть ли в буфере обмена данные поддерживаемых формой Form форматов и, если это так, возвращает True. Если вы вызвали PasteSpecialDlg, не произведя проверку с помощью этой функции, то диалог появится, но в случае отсутствия данных не произведет никаких действий. Посмотрите на приведенный ниже пример использования вызова диалога PasteSpecialDlg:
Если вы хотите ограничиться вставкой из буфера обмена только объектов OLE, возможно значительно упростить описанный выше механизм. Функции
являются полными аналогами PasteSpecialDlg и PasteSpecialEnabled ? но только в части, касающейся OLE. Список зарегистрированных форматов по-прежнему необходим, но в нем будут играть роль только форматы для связанного и внедренного объектов. Пример вызова диалога PasteSpecialOLEDlg короче предыдущего:
С помощью переключателей (радиокнопок), имеющихся в диалогах вставки, пользователь может определить, хочет ли он встроить или связать объект с вашим приложением. Если в контейнере содержится связанный объект, то его состояние можно проверить и изменить, вызвав соответствующий диалог из функции:
Если связанного объекта нет, то вызов LinksDlg не имеет смысла. Убедитесь в целесообразности при помощи функции:
Для комментария : kadan@grsu.grodno.by | |||||||||||
За содержание страницы отвечает Гончарова М.Н. © Кафедра СПиКБ, 2002-2017 |