2014-10-20 2 views
2

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

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

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

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

ListBox1.Items.Add('text') 

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

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

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

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

+0

TListBox имеет свойство DefaultItemStyles что, вероятно, что вы хотите, но не документирован так необходим расследование. Удаление контура сложнее. Просмотрите конструктор стиля Bitmap (в меню «Инструменты»), и вам понадобится хороший графический редактор. –

ответ

3

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

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

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

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

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

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

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

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

enter image description here

+0

Это очень полезно, спасибо Питеру. Не могли бы вы указать немного более подробно о том, как действовать дальше: «вы хотите быть уверенным, что каждому элементу присвоено соответствующее имя styleLookup. Вы должны это делать во время выполнения»? Откуда мне получить имя stylelookup? –

+0

Я отредактировал свой ответ, чтобы включить более подробную информацию о том, как это сделать. – Peter

+0

Отлично, спасибо. –

Смежные вопросы