procedure TForm1.BtnShowFormatsClick(Sender: TObject);
var
buf: array[0..60] of Char;
n: Integer;
fmt: Word;
name: string[30];
begin
MemFormats.Clear;
for n := 0 to Clipboard.FormatCount - 1 dobegin
fmt := Clipboard.Formats[n];
if GetclipboardFormatName(fmt, buf, Pred(Sizeof(buf))) <> 0 then
MemFormats.Lines.Add(StrPas(buf))
elsebegincase fmt of
1: name := 'CF_TEXT';
2: name := 'CF_BITMAP';
3: name := 'CF_METAFILEPICT';
4: name := 'CF_SYLK';
5: name := 'CF_DIF';
6: name := 'CF_TIFF';
7: name := 'CF_OEMTEXT';
8: name := 'CF_DIB';
9: name := 'CF_PALETTE';
10: name := 'CF_PENDATA';
11: name := 'CF_RIFF';
12: name := 'CF_WAVE';
13: name := 'CF_UNICODETEXT';
14: name := 'CF_ENHMETAFILE';
15: name := 'CF_HDROP (Win 95)';
16: name := 'CF_LOCALE (Win 95)';
17: name := 'CF_MAX (Win 95)';
$0080: name := 'CF_OWNERDISPLAY';
$0081: name := 'CF_DSPTEXT';
$0082: name := 'CF_DSPBITMAP';
$0083: name := 'CF_DSPMETAFILEPICT';
$008E: name := 'CF_DSPENHMETAFILE';
$0200..$02FF: name := 'частный формат';
$0300..$03FF: name := 'Объект GDI';
else
name := 'неизвестный формат';
end;
MemFormats.Lines.Add(name);
end;
end;
end;
Вот перевод текста на русский язык:
Это фрагмент кода на языке программирования Delphi, демонстрирующий, как получить и отобразить доступные форматы в буфере обмена с помощью компонента Clipboard.
Сюда входят следующие шаги:
Он объявляет несколько переменных:
buf: массив из 61 символов для хранения имени каждого формата.
n: целочисленная переменная для итерации по форматам.
fmt: целочисленная переменная для хранения идентификатора формата.
name: строковая переменная для хранения человекопонятного имени каждого формата.
Он очищает компонент MemFormats, который предполагается быть текстовым полем на форме.
Он проходит по доступным форматам буфера обмена с помощью свойства FormatCount и массива Formats.
Для каждого формата он использует функцию GetClipboardFormatName для получения человекопонятного имени формата. Если имя не может быть получено (т.е. функция возвращает 0), он переходит к случаю, чтобы определить имя на основе идентификатора формата.
Случайный блок quite extensive и охватывает многие общедоступные форматы, включая:
CF_TEXT, CF_BITMAP, CF_METAFILEPICT и т.д.
Некоторые приватные форматы (например, $0080, $008E)
Форматы объектов GDI ($0300..$03FF)
Если идентификатор формата не распознан, он по умолчанию использует метку "неизвестный формат".
Наконец, он добавляет каждое имя формата в строки компонента MemFormats с помощью метода Add.
Код обеспечивает способ инспектировать содержимое буфера обмена и отображать информацию о доступных форматах. Обратите внимание, что этот код является специфичным для Delphi и может не быть напрямую перенесен в другие языки программирования или платформы.
В статье описывается процедура, позволяющая получить список встроенных форматов буфера обмена и их имена в приложении на языке Delphi.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.