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

Обычно, это нужно для того, чтобы запихнуть в буфер обмена данные собственного формата. Сначала необходимо зарегистрировать этот формат при помощи функции RegisterClipboardFormat():

 

CF_MYFORMAT := RegisterClipboardFormat('My Format Description');

 

Затем необходимо проделать следующие шаги:

1. Создать поток (stream) и записать в него данные.

2. Создать в памяти глобальный буфер и скопировать в него поток (stream).

3. При помощи Clipboard.SetAsHandle() поместить глобальный буфер в буфер обмена.

 

Пример:

Code:

var

hbuf    : THandle;

bufptr  : Pointer;

mstream : TMemoryStream;

begin

mstream := TMemoryStream.Create;

try

   {-- Записываем данные в mstream. --}

   hbuf := GlobalAlloc(GMEM_MOVEABLE, mstream.size);

   try

     bufptr := GlobalLock(hbuf);

     try

       Move(mstream.Memory^, bufptr^, mstream.size);

       Clipboard.SetAsHandle(CF_MYFORMAT, hbuf);

     finally

       GlobalUnlock(hbuf);

     end;

   except

     GlobalFree(hbuf);

     raise;

   end;

finally

   mstream.Free;

end;

end;

 

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

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

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

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


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