Каждый юзер наверняка сталкивался с помещением
информации в буфер и извлечением ее оттуда. Тот же пресловутый Ворд при нажатии
кнопки "копировать" помещает выделенный текст в буфер, а при нажатии "вставить"
- извлекает его. Таким же образом помещаться в буфер могут изображения и данные
разных форматов. Итак, буфер - это специальная область оперативной памяти в
которую Windows помещает пользовательские данные для обмена между разными
приложениями или внутри одного приложения.
Для того, чтобы работать с
буфером обмена из Delphi, необходимо подключить к своему приложению модуль
clipbrd.pas, то есть пишем в uses clipbrd.pas,...
РАБОТА С ТЕКСТОМ
Самый
простой способ поместить в буфер обмена какой-либо текст - это добавить
следующий код:
Clipboard.asText:='ВАШ_ТЕКСТ';
или
Clipboard.SetTextBuf(PChar('ВАШ_ТЕКСТ'));
Чтобы извлечь текст из буфера, можно сделать так (поместим текст в Memo1:TMemo):
Memo1.Text:=Clipboard.asText;
РАБОТА С ИЗОБРАЖЕНИЯМИ
Если вы работаете с компонентом Image1:Timage, то самым простым способом
поместить в него изображение из буфера будет присвоение хэндла данных
Clipboard'a хэндлу Tbitmap:
Image1.Picture.Bitmap.Handle:=Clipboard.GetAsHandle(CF_bitmap);
КАК УЗНАТЬ ФОРМАТ ДАННЫХ БУФЕРА В ДАННЫЙ
МОМЕНТ
Для этого существует специальная функция
Clipboard.HasFormat(Format: WORD):boolean;
Функция возвращает true,
если в буфере именно этот формат, в противном случает возвращает
false.
Описание форматов:
CF_TEXT - Обычный текст, заканчивающийся
<CR><LF>
CF_BITMAP - Битмап изображение *.bmp
CF_METAFILEPICT
- Метафайл изображение *.wmf
CF_PICTURE - Объект типа
TPicture
CF_COMPONENT - Компонента Delphi (Tbutton, например)
CF_OBJECT -
Любой объект в Delphi типа TPersistent
ОЧИЩАЕМ БУФЕР
Чтобы
очистить буфер обмена от содержащихся в нем данных, используйте процедуру
Clipboard.clear;
ОТКРЫВАЕМ // ЗАКРЫВАЕМ
Если вы хотите, чтобы все
приложения, кроме вашего не могли изменять содержимое буфера,
используйте
Clipboard.Open;
После пользования буфером, его необходимо закрывать
процедурой Clipboard.Close;
З.Ы.
Многие объекты в Delphi
изначально имеют методы, позволяющие помещать данные в буфер и извлекать их
оттуда, примером может служить Tpicture.
Автор: Андрей Таманцев
|
Программирование для чайников.
|