Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Встроенные форматы буфера обмена

Delphi , ОС и Железо , Буфер обмена

Встроенные форматы буфера обмена

Автор: Peter Below


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 do
  begin
    fmt := Clipboard.Formats[n];
    if GetclipboardFormatName(fmt, buf, Pred(Sizeof(buf))) <> 0 then
      MemFormats.Lines.Add(StrPas(buf))
    else
    begin
      case 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.

Сюда входят следующие шаги:

  1. Он объявляет несколько переменных:
    • buf: массив из 61 символов для хранения имени каждого формата.
    • n: целочисленная переменная для итерации по форматам.
    • fmt: целочисленная переменная для хранения идентификатора формата.
    • name: строковая переменная для хранения человекопонятного имени каждого формата.
  2. Он очищает компонент MemFormats, который предполагается быть текстовым полем на форме.
  3. Он проходит по доступным форматам буфера обмена с помощью свойства FormatCount и массива Formats.
  4. Для каждого формата он использует функцию GetClipboardFormatName для получения человекопонятного имени формата. Если имя не может быть получено (т.е. функция возвращает 0), он переходит к случаю, чтобы определить имя на основе идентификатора формата. Случайный блок quite extensive и охватывает многие общедоступные форматы, включая:
    • CF_TEXT, CF_BITMAP, CF_METAFILEPICT и т.д.
    • Некоторые приватные форматы (например, $0080, $008E)
    • Форматы объектов GDI ($0300..$03FF)
  5. Если идентификатор формата не распознан, он по умолчанию использует метку "неизвестный формат".
  6. Наконец, он добавляет каждое имя формата в строки компонента MemFormats с помощью метода Add.

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

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


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Буфер обмена ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-24 19:55:31/0.0035550594329834/0