Справочник по компонентам Delphi. Часть 3
Страница 15. Объект Clipboard


 

Объект Clipboard

TClipboard = class(TPersistent)

Объект TClipboard представляет программисту интерфейс с буфером обмена (Clipboard) Windows. При включении в проект модуля CLIPBRD этот гло­бальный объект создается автоматически и доступен приложению в течение всего цикла.

Методы открытия и закрытия буфера обмена

procedure Open; procedure Close;

вызываются во всех остальных методах TClipboard, поэтому программист редко нуждается в обращении к ним. В объекте ведется счетчик числа обращений к этим функциям, так что соответствующие функции API Windows вызываются только при первом открытии и последнем закрытии.

Очистка содержимого буфера (для всех форматов) производится вызовом ме­тода:

procedure Clear;

О доступных форматах можно узнать, пользуясь следующими свойствами и методами:

(Ro) property FormatCount: Integer;

— содержит число форматов в буфере на данный момент;

(Ro) property Formats[Index: Integer]: Word;

— содержит их полный список. Функция

function HasFormat(Format: Word): Boolean;

проверяет, содержится ли в данный момент формат Format.

Волею разработчиков различаются способы обмена графической и текстовой информацией через буфер обмена. Рассмотрим их независимо.

Через вызов метода procedure Assign(Source: TPersistent);

в буфер обмена помещаются данные классов TGraphic, точнее, его потомков — классов TBitmap (формат CF.BITMAP) и TMetaffle (CF.METAFILEPICT). Данные класса TIcon не имеют своего формата и с TClipboard несовместимы.

Допустимо и обратное: в TClipboard есть специальные (скрытые) методы для присваивания содержимого объектам классов TPicture, TBitmap и TMetafile. Допустимы выражения вида:

My Image.Picture.Assign(Clipboard) ;

Для работы с текстом предназначены методы:

function GetTextBuf(Buffer: PChar; BufSize: Integer): Integer;

— читает текст из буфера обмена в буфер Buffer, длина которого ограничена значением BufSize. Функция возвращает истинную длину прочитанного текста;

procedure SetTextBuf(Buffer: PChar); — помещает текст из Buffer в буфер обмена в формате CF_TEXT; Свойство property AsText: string;

соответствует содержимому буфера обмена в         текстовом формате    CF_TEXT

(приведенному к типу string). При отстутствии там   данных этого формата возвращается пустая строка.

Методы function GetAsHandle(Format: Word): THandle;

procedure SetAsHandle(Format: Word; Value: THandle);

соответственно читают и пишут данные в буфер в заданном формате Format. При чтении возвращается дескриптор находящихся в буфере данных (или О при отсутствии). Для дальнейшего использования эти данные должны быть скопированы. При записи данные, передаваемые в параметре Value, в даль­нейшем должны быть уничтожены системой (а не программой пользователя).

Два метода предназначены для обмена компонентами через буфер обмена (в специально зарегистрированном формате CF_COMPONENT):

function GetComponent(Owner, Parent: TComponent): TComponent; procedure SetComponent(Component: TComponent);

Они используются составными частями среды Delphi.

 
 
« Предыдущая статья   Следующая статья »