Как удалить линию границы из элемента управления FireMonkey TListBox?

Я изучаю стили FireMonkey - моя основная ссылка была здесь. Все, что я пробовал с простыми метками и формами, работало нормально, но сейчас я работаю с TListBox и пытаюсь сделать две вещи:

  1. Установите шрифт элементов в TListBox.
  2. Удалите его границу (это клиент выровнен в TCalloutPanel).

Я использую метод создания StyleBook в форме, щелкаю правой кнопкой мыши по элементу управления и выбираю "Изменить пользовательский стиль". (Я был бы одинаково рад внести изменения во время выполнения, хотя).

Единственный успех, который у меня был со шрифтом, - это создать несколько TListBoxItem и использовать их индивидуальные настройки текста. Нет ли способа, которым они унаследовали родительский параметр, как с VCL? Я действительно хотел бы добавить элементы списка просто, как в VCL:

 ListBox1.Items.Add( 'text' )

но я не вижу способа получения во внутреннем массиве TListBoxItem, который я вижу, создан.

Другая проблема в том, что я не вижу способа удалить прямоугольник границы. Простой прямоугольник прост - у него есть обводка - но копаясь во всех опциях макета TListBox в StyleBook, я просто не могу видеть обводку где-либо.

Я использую XE7. Я что-то пропустил?

Спасибо за любую помощь.

1 ответ

Решение

Нет никаких гарантий, что фон будет TRectangle тип.

Когда вы выбираете опцию Edit Custom Style, вы будете редактировать стиль платформы по умолчанию, который всегда является стилем Windows. (То есть, если пользовательский стиль уже не был загружен)

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

  1. Настройка шрифта элементов в ListBox

    Щелкните правой кнопкой мыши на элементе и выберите "Редактировать пользовательский стиль", новый объект стиля будет добавлен в вашу книгу стилей. Для элемента списка он должен называться listboxitem1style1 альт цифры могут отличаться. (Название происходит от стиля по умолчанию для этого объекта, который listboxitemstyle).

    Это объект стиля, который вы хотите редактировать в StyleBook. Когда вы закончите, закройте StyleBook и измените StyleLookup свойство каждого элемента ListBox для listboxitem1style1, Желательно, чтобы вы присвоили значение свойству во время выполнения.
    ListBoxItem1.StyleLookup := 'listboxitem1style1';

  2. Удаление границы из TListBox

    После того, как пользовательский стиль загружен в вашу StyleBook, с помощью дизайнера стилей перейдите к ListBox1Style1 > background : SourceLink property и редактировать SourceRect назначенного объекта BitmapLink. В основном вы надуваете прямоугольник на -2, чтобы избавиться от границы.

Другие вопросы по тегам