Как удалить линию границы из элемента управления FireMonkey TListBox?
Я изучаю стили FireMonkey - моя основная ссылка была здесь. Все, что я пробовал с простыми метками и формами, работало нормально, но сейчас я работаю с TListBox и пытаюсь сделать две вещи:
- Установите шрифт элементов в TListBox.
- Удалите его границу (это клиент выровнен в TCalloutPanel).
Я использую метод создания StyleBook в форме, щелкаю правой кнопкой мыши по элементу управления и выбираю "Изменить пользовательский стиль". (Я был бы одинаково рад внести изменения во время выполнения, хотя).
Единственный успех, который у меня был со шрифтом, - это создать несколько TListBoxItem и использовать их индивидуальные настройки текста. Нет ли способа, которым они унаследовали родительский параметр, как с VCL? Я действительно хотел бы добавить элементы списка просто, как в VCL:
ListBox1.Items.Add( 'text' )
но я не вижу способа получения во внутреннем массиве TListBoxItem, который я вижу, создан.
Другая проблема в том, что я не вижу способа удалить прямоугольник границы. Простой прямоугольник прост - у него есть обводка - но копаясь во всех опциях макета TListBox в StyleBook, я просто не могу видеть обводку где-либо.
Я использую XE7. Я что-то пропустил?
Спасибо за любую помощь.
1 ответ
Нет никаких гарантий, что фон будет TRectangle
тип.
Когда вы выбираете опцию Edit Custom Style, вы будете редактировать стиль платформы по умолчанию, который всегда является стилем Windows. (То есть, если пользовательский стиль уже не был загружен)
Они решили обработать стили платформы по умолчанию, сделав снимки собственных элементов управления и объединив их в одно изображение, из которого они могут по отдельности получить ссылку на конкретный элемент управления. Это изображение доступно в стиле, который вы можете изменить.
Настройка шрифта элементов в ListBox
Щелкните правой кнопкой мыши на элементе и выберите "Редактировать пользовательский стиль", новый объект стиля будет добавлен в вашу книгу стилей. Для элемента списка он должен называться
listboxitem1style1
альт цифры могут отличаться. (Название происходит от стиля по умолчанию для этого объекта, которыйlistboxitemstyle
).
Это объект стиля, который вы хотите редактировать в StyleBook. Когда вы закончите, закройте StyleBook и изменитеStyleLookup
свойство каждого элемента ListBox дляlistboxitem1style1
, Желательно, чтобы вы присвоили значение свойству во время выполнения.ListBoxItem1.StyleLookup := 'listboxitem1style1';
Удаление границы из TListBox
После того, как пользовательский стиль загружен в вашу StyleBook, с помощью дизайнера стилей перейдите к
ListBox1Style1 > background : SourceLink property
и редактироватьSourceRect
назначенного объекта BitmapLink. В основном вы надуваете прямоугольник на -2, чтобы избавиться от границы.