Содержание материала

function PasteSpecialEnabledfForm: TForm;const Pints: array of BOLEFormat): Boolean;

 

Она проверяет, есть ли в буфере обмена данные поддерживаемых формой Form форматов и, если это так, возвращает True. Если вы вызвали PasteSpecialDIg, не произведя проверку с помощью этой функции, то диалог появится, но в случае отсутствия данных не произведет никаких действий.

Посмотрите на приведенный ниже пример использования вызова диалога PasteSpecialDIg:

 

Code:

procedure TFormI.PasteItemClick(Sender: TObject);

var

DataFormat: Word;

DataHandle: THandle;

Thelnfo: Pointer;

begin

if PasteSpecialEnabledfSelf, Pints) then

   if PasteSpecialDIg(Formi, Fmts, 0, DataFormat, DataHandle, Thelnfo) then

     if DataFormat = Word(-l) then

       begin

         OLEContainerl.PInitInfo := Thelnfo;

         ReleaseOLEInitInfo(Thelnfo);

       end

     else

       if DataFormat in [CP_BITMAP, CF_METAPILEPICT] then

          Iinagel -Picture .Assign (Clipboard) ;

end;

 

 

Если вы хотите ограничиться вставкой из буфера обмена только объектов OLE, возможно значительно упростить описанный выше механизм. Функции

function PasteSpecialOLEDIg(Form: TForm; HelpContext: THelpContext;

var PInitInfo: Pointer): Boolean;

function PasteSpecialOLEEnabled(Form: TForm): Boolean;

являются полными аналогами PasteSpecialDIg и PasteSpecialEnabled — но только в части, касающейся OLE. Список зарегистрированных форматов по-прежнему необходим, но в нем будут играть роль только форматы для связанного и внедренного объектов.

Пример вызова диалога PasteSpecialOLEDIg короче предыдущего:

 

Code:

procedure TFormI.PasteitemClick(Sender: TObject);

var Thelnfo: Pointer;

begin

if PasteSpecialOLEEnabled(Self, Fmts) then

   if PasteSpecialOLEDIg(Formi, 0, Thelnfo) then

     begin

       OLEContainerl.PInitInfo := Thelnfo;

       ReleaseOLEInitInfo(Thelnfo) ;

     end;

end;

  

С помощью переключателей (радиокнопок), имеющихся в диалогах вставки, пользователь может определить, хочет ли он встроить или связать объект с вашим приложением.

Если в контейнере содержится связанный объект, то его состояние можно проверить и изменить, вызвав соответствующий диалог из функции:

procedure LinksDig(Form: TForm; HelpContext: THelpContext);

Если связанного объекта нет, то вызов LinksDig не имеет смысла. Убедитесь в целесообразности при помощи функции:

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить