Сегодня каждый из нас сталкивается с помещением информации в буфер и извлечением ее оттуда. Простым примером этого, может служить программа - Ворд. При нажатии кнопки копировать помещает выделенный текст в буфер, а при нажатии вставить - извлекает его. Таким же образом мы можем поместить в буфер изображения и данные разных форматов. Что же такое буфер? Подведем итог.
Буфер - область оперативной памяти в которую виндовс помещает пользовательские данные для обмена между разными приложениями или внутри одного приложения.
Для того, чтобы мы могли работать с буфером обмена из Delphi, нужно подключить к нашему приложению модуль clipbrd.pas, то есть пишем в uses clipbrd.pas,...
Работаем с текстом:
Код:
Clipboard.asText:='ВАШ_ТЕКСТ';
или
Clipboard.SetTextBuf(PChar('ВАШ_ТЕКСТ'));
Чтобы мы могли извлечь текст из буферы, нам надо: поместить текст в Memo1:TMemo
Код:
Memo1.Text:=Clipboard.asText;
Работаем с изображением:
Если вы работаете с компонентом Image1:Timage, то самым простым способом поместить в него изображение из буфера будет присвоение хэндла данных Clipboard'a хэндлу Tbitmap:
Для этого у нас с вами есть спец. функция 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;
Всем спасибо за внимание.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]