Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 12.03.2014, 18:22   #1
Читер-спонсор
 Пехотинец
Аватар для .Master.
 
.Master. трижды герой Советского Союза.Master. трижды герой Советского Союза.Master. трижды герой Советского Союза.Master. трижды герой Советского Союза.Master. трижды герой Советского Союза.Master. трижды герой Советского Союза.Master. трижды герой Советского Союза.Master. трижды герой Советского Союза.Master. трижды герой Советского Союза.Master. трижды герой Советского Союза.Master. трижды герой Советского Союза
Регистрация: 21.07.2012
Сообщений: 95
Популярность: 6380
Сказал(а) спасибо: 631
Поблагодарили 460 раз(а) в 379 сообщениях
 
По умолчанию Работаем с буфером обмена в среде Delphi.

Сегодня каждый из нас сталкивается с помещением информации в буфер и извлечением ее оттуда. Простым примером этого, может служить программа - Ворд. При нажатии кнопки копировать помещает выделенный текст в буфер, а при нажатии вставить - извлекает его. Таким же образом мы можем поместить в буфер изображения и данные разных форматов. Что же такое буфер? Подведем итог.

Буфер - область оперативной памяти в которую виндовс помещает пользовательские данные для обмена между разными приложениями или внутри одного приложения.

Для того, чтобы мы могли работать с буфером обмена из 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;

Всем спасибо за внимание.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
http://i.zhyk.ru/images/KM9hf.png
  Ответить с цитированием
Пользователь сказал cпасибо:
DeathAngel (04.04.2014)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работаем работаем Rawwwwr Треп 5 16.08.2012 10:32
в какой среде это написано kar911 Вопросы и ответы, обсуждения 1 13.06.2012 16:16
[Помогите!] с буфером Name-3 Вопросы и ответы, обсуждения 6 07.08.2011 22:31

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 21:06.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net