30 августа 2023

Delphi 12. Отображение элементов TListView в виде плиток

    TListView в Delphi всегда поддерживал четыре режима отображения своих элементов:
  • vslcon – полноразмерные иконки с заголовком под ними;
  • vsSmalllcon – маленькие иконки с заголовком справа от них;
  • vsList – список маленьких иконок с заголовком справа от них;
  • vsReport – таблица, в которой крайний левый столбец содержит маленькие иконки с заголовком, а остальные столбцы содержат подэлементы.
В Delphi 12 список этих режимов дополнился новым режимом "в виде плитки" (Tile View), который доступен в базовом контроле операционной системы.
    В Delphi 12 для поддержки у TListView отображения в виде плиток перечисление TViewStyle получило новое значение – vsTile, а самому TListView разработчики добавили два новых свойства:
  • TileOptions – параметры элементов плитки:
    • SizeType – тип размера плитки (tstAutoSize, tstFixedHeight, tstFixedSize, tstFixedWidth);
    • Width – ширина плитки (если установлен фиксированный размер);
    • Height – высота плитки (если установлен фиксированный размер);
    • LabelMargins – поля строк текста внутри элемента;
    • SubLineCount – количество текстовых строк в каждой метке элемента без учета заголовка (для отображения подэлементов);
  • TileColumns – коллекция объектов TTileColumn с единственным свойством Order, которое позволяет указать номер подэлемента для отображения в метке элемента под его заголовком.
По требованию операционной системы, для отображения элементов TListView в виде плиток в свойствах проекта должен быть обязательно включен параметр "Enable Runtime Themes". Если этот параметр отключен, то режим vsTile у TListView работает аналогично режиму vslcon.
    Маленький тестовый пример демонстрирует TListView в режиме vsTile с фотографией и именем видного исторического деятеля в качестве заголовка, и тремя подэлементами "Дата рождения", "Дата смерти" и "Род деятельности" (TileOptions.SubLineCount = 3).
Delphi 12 - Отображение элементов TListView в виде плиток
Размеры плиток определяются автоматически (TileOptionst.SizeType = stAutoSize). Обратите внимание, что если строка метки элемента не помещается в допустимое горизонтальное пространство, то она завершается многоточием.

2 комментария:

  1. еще лет 50 и будет подобие HTML 4.0 в VCL - вы издеваетесь????? так мы далеко не уедем!!!

    ОтветитьУдалить
    Ответы
    1. Можно быстрее - купить и встроить https://delphihtmlcomponents.com

      Удалить