Читаем Delphi. Трюки и эффекты полностью

Перед доступом к данным, содержащимся объектом Clipboard, может потребоваться анализ формата данных, для этого служит метод HasFormat. Процедура HasFormat (Format: Word): Boolean используется для запроса к буферу обмена и позволяет узнать, можно ли извлечь хранимые в нем данные в заданном формате, указанном параметром Format. При положительном ответе возвращаемое значение равно True, в противном случае – False.

Как правило, различные приложения используют буфер обмена. Но в случае, когда необходимо получить монопольный доступ к буферу, приложение должно открыть его для себя в специальном режиме. Для этого вызывается метод Open, позволяющий программе получить полный (исключительный) доступ к общей области обмена. После вызова метода Open содержимое буфера не может быть изменено другими приложениями, поэтому после окончания монопольного использования приложение должно вызвать метод Close объекта Clipboard. Если открытый буфер не был закрыт с помощью метода Close, то он будет автоматически закрыт системой после завершения программы, открывшей буфер обмена.

Для очистки содержимого буфера обмена используется метод Clear. Он вызывается автоматически при изменении содержимого в буфере. Перед записью новых данных, помещаемых в буфер, старая информация удаляется.

Класс TClipboard используется многими другими классами и компонентами, которые поддерживают обмен данными через буфер обмена. К примеру, компоненты Memo и Edit имеют специальные методы для обмена текстовой информацией посредством буфера. Методы CopyToClipBoardH CutToClipBoard помещают текстовые данные в буфер обмена, копируя и вырезая их из источника (компонента) соответственно, а метод PasteFromClipBoard вставляет текстовый фрагмент из буфера в текстовое поле.

Только при использовании подобных методов лучше проверять, является ли содержимое буфера обмена текстовой информацией. В листинге 8.4 показан пример копирования в буфер обмена всего текста, введенного в текстовое поле.

...

Листинг 8.4.

Копирование текста из поля редактора Memo в буфер обмена

procedure TFormClipboard.bnCopyTextClick(Sender: TObject);

begin

//Выделяем весь текст в поле редактора

MemoText.SelectAll;

//Копируем текст

MemoText.CopyToClipBoard;

end;

Буфер обмена часто используется для хранения текста, поэтому объект Clipboard имеет специальное свойство AsText типа String, предназначенное для обработки содержимого буфера как данных текстового формата. Свойство AsText предназначено как для чтения, так и для записи. При чтении свойства данные извлекаются из буфера, а при записи – заносятся в буфер обмена (листинг 8.5).

...

Листинг 8.5.

Копирование текстовой информации

procedure TFormClipboard.bnCopyTextAsTextClick(Sender: TObject);

begin

//Если в буфере текст, то выводим его в поле редактора

if Clipboard.HasFormat(CF_Text)

then MemoText := Clipboard.AsText

end;

При работе с графическими компонентами для операций, связанных с обменом информацией через общую область, удобно использовать метод Assign. Процедура Assign (Source: TPers is tent) присваивает буферу обмена объект, указанный параметром Source. Если объект является изображением и принадлежит таким графическим классам, как TBitmap, TPicture или TMetaf ile, то в буфер обмена копируется изображение установленного формата. Для извлечения изображения также может использоваться метод Assign.

Пример использования буфера обмена для копирования изображений проводится в листинге 8.6.

...

Листинг 8.6.

Обмен изображением через буфер обмена

procedure TFormClipboard.bnCopyImageClick(Sender: TObject);

begin

//Открываем монопольный доступ

Clipboard.Open;

//Заносим изображение в буфер

Clipboard.Assign(ImageMyPic1.Picture);

//Проверям формат находящихся в буфере данных

if Clipboard.HasFormat(CF_Picture)

then ImageMyPic2.Picture.Assign(Clipboard);

//Закрываем монопольный доступ к буферу

Clipboard.Close;

end;

Изображение, находящееся в образе ImageMyPicl, помещается в буфер обмена, откуда затем копируется в образ ImageMyPic2. Для выполнения этих операций устанавливается монопольный доступ к объекту Clipboard.

Перейти на страницу:

Похожие книги

102 способа хищения электроэнергии
102 способа хищения электроэнергии

Рассмотрена проблема хищений электроэнергии и снижения коммерческих потерь в электрических сетях потребителей. Приведены законодательно–правовые основы для привлечения к ответственности виновных в хищении электроэнергии. Изложены вопросы определения расчетных параметров средств учета электроэнергии, показаны схемы подключения счетчиков электрической энергии. Описаны расчетные и технологические способы хищения электроэнергии. Обсуждаются организационные и технические мероприятия по обнаружению, предотвращению и устранению хищений.Для работников энергоснабжающих организаций и инспекторского состава органов Ростехнадзора. Материалы книги могут быть использованы руководителями и специалистами энергослужб предприятий (организаций) для правильного определения расчетных параметров средств учета и потерь электроэнергии в электрических сетях.Если потенциальные расхитители электроэнергии надеются найти в книге «полезные советы», они должны отдавать себе отчет, что контролирующие структуры информированы в не меньшей степени и, следовательно, вооружены для эффективной борьбы с противоправной деятельностью.Настоящая книга является переработанным и дополненным изданием выпущенной в 2005 г. книги «101 способ хищения электроэнергии».

Валентин Викторович Красник

Технические науки / Образование и наука
100 великих чудес инженерной мысли
100 великих чудес инженерной мысли

За два последних столетия научно-технический прогресс совершил ошеломляющий рывок. На что ранее человечество затрачивало века, теперь уходят десятилетия или всего лишь годы. При таких темпах развития науки и техники сегодня удивить мир чем-то особенным очень трудно. Но в прежние времена появление нового творения инженерной мысли зачастую означало преодоление очередного рубежа, решение той или иной крайне актуальной задачи. Человечество «брало очередную высоту», и эта «высота» служила отправной точкой для новых свершений. Довольно много сооружений и изделий, даже утративших утилитарное значение, тем не менее остались в памяти людей как чудеса науки и техники. Новая книга серии «Популярная коллекция «100 великих» рассказывает о чудесах инженерной мысли разных стран и эпох: от изобретений и построек Древнего Востока и Античности до небоскребов в сегодняшних странах Юго-Восточной и Восточной Азии.

Андрей Юрьевич Низовский

История / Технические науки / Образование и наука
Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки