Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как получить объект стиля?


Nix0N

Вопрос

Опубликовано (изменено)

Для примера:

 

Есть объект ListBoxItem. В StyleBook загружен стиль по умолчанию. Для итема лист бокса задан стандартный стиль:

ListBoxItem.Stylename = "listboxitemlabel"

Если заглянуть в StyleBook, то мы увидим что "listboxitemlabel" это TLayout.

  • Каким образом можно изменить/получить свойства этого объекта, к примеру текущую его высоту для нашего ListBoxItem?
Изменено пользователем Brovin Yaroslav

Рекомендуемые сообщения

  • 0
  • Модераторы
Опубликовано

Вроде как можно искать объект стиля, например иконку в ListBoxItem:

var
  StyleObject: TFmxObject;
  StyleIcon: TControl;
begin
  // Ищем объект стиля - картинка. Лучше закешировать один раз, избежав постоянный поиск картинки 
  StyleObject := Item.FindStyleResource('icon');
  if (StyleObject <> nil) and (StyleObject is TControl) then
  begin
    StyleIcon := TControl(StyleObject);
    // и дальше работаем как с обычным контролом
  end;
end;

попробуйте, может поможет.

  • 0
  • Администраторы
Опубликовано

Еще можно через StylesData. Но в этом случае вначале идет название (StyleName) внутреннего объекта стиля, а потом через точку название свойства. 

Вы пытались задать, но не правильно указали название элемента. Если итем лист бокса принимает стиль "listboxitemlabel", то чтобы добраться например до внутреннего объекта icon. Нужно написать так:

ListBoxItem.StylesData['icon.width'].asInteger 
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...