20.4. CLIPBOARD
В Windows широко используется буфер межпрограммного обмена данными Clipboard. Если программа Delphi сослалась на модуль Сlipbrd, для нее становится доступным автоматически созданный объект clipboard, инкапсулирующий методы и свойства для работы с буфером.
Свойства объекта clipboard:
property AsTex-t: Strings; |
Рассматривает содержимое буфера как текстовую строку длиной до 255 символов. Для обмена с буфером более длинными строками следует использовать его методы SetTextBuf и GetTextBuf |
property FormatCount: Integers; |
Возвращает общее количество форматов хранящихся в буфере данных |
property Formats[Index: Integer]: Word; |
Открывает доступ к данным по формату, указанному индексом Index |
Методы объекта clipboard: |
|
procedure Assign(Source: TPersistent) ; |
Копирут в буфер изображение |
procedure Clear; procedure Closes; |
Очищает буфер Уменьшает на 1 счетчик блокировок буфера и закрывает его, если счетчик содержит 0 |
function GetTextBuf(Buffer: PChar; BufSize: Integer): Integers; |
Копирует из clipboard не более BufSize символов в текстовый буфер Buffer и возвращает действительное количество скопированных символов |
procedure HasFormat(Format: Word): Boolean; procedure Open; |
Возвращает True, если буфер содержит данные в формате Format Увеличивает на 1 счетчик блокировок буфера и открывает его, если он еще не был открыт |
procedure SetTextBuf(Buffer: PChar); |
Помещает в clipboard содержимое текстового буфера Buffer |
Чтобы поместить в буфер изображение, хранящееся, например, в объекте BitMap класса TBitMap, следует обратиться к методу Assign буфера:
Clipboard.Assign(BitMap);
а для копирования изображения из буфера - к методу Assign объекта-приемника: BitMap.Assign(Clipboard);