Четверг, 06.02.2025, 03:43
AMAR Inc.
Приветствую Вас Гость | RSS
Главная Программирование Регистрация Вход
Меню сайта

Категории каталога
Разные статьи [48]
Система [62]

Главная » Статьи » Delphi » Разные статьи

Работа с буфером обмена в Delphi
   Каждый юзер наверняка сталкивался с помещением информации в буфер и извлечением ее оттуда. Тот же пресловутый Ворд при нажатии кнопки "копировать" помещает выделенный текст в буфер, а при нажатии "вставить" - извлекает его. Таким же образом помещаться в буфер могут изображения и данные разных форматов. Итак, буфер - это специальная область оперативной памяти в которую 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.


Категория: Разные статьи | Добавил: amar-runyak (22.09.2007)
Просмотров: 2300 | Комментарии: 1 | Рейтинг: 5.0/1 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Поиск

Друзья сайта

Статистика

Copyright AMAR Inc. © 2025