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

Лидеры

Популярный контент

Показан контент с высокой репутацией 10.07.2014 в Сообщения

  1. Это хороший вопрос. Я поясню. TListBox может иметь большое число элементов (Items, например 1000). Однако, реально из них отображается только видимая часть (Например 50). Отсюда приходит мысль, что не следует грузить стиль всем элементам в лист боксе, поскольку это займет очень много ресурсов: как процессорного времени на загрузку, так и памяти на хранение. При прокручивании TListBox, стили выгружаются с невидимых элементов, и загружаются для новых видимых. Каждый элемент TListBoxItem, хранит свои данные у себя (Text, IsChecked, Bitmap). Когда стиль загружается, сам элемент TListBoxItem, устанавливает нужные данные в объекты стиля в соответствии с хранимыми данными (Text, IsChecked, Bitmap). При выгрузке стиля установленные данные в объекты стиля, теряются. Если только они не были самостоятельно сохранены. Когда вы вручную самостоятельно добавляете свой объект в стиле, вы должны позаботиться о том, чтобы сохранить задаваемые данные для элементов и восстановить эти значения при очередной загрузке стиля. TStyledControl поддерживает встроенный механизм кэширования пользовательских данных через StylesData. При использовании StylesData контрол автоматически сохраняет ваше значение в своем словаре и при смене стиля самостоятельно обновляет свойства объектов стиля в соответствии с хранимыми данными в словаре. О том, как работать с StylesData можно прочитать тут: Доступ к элементам стиля StylesData Когда вы стали использовать вариант с icon, то по сути сам TListBoxItem за вас восстановил иконку, поскольку это заложено в его базовое поведение P.S. Используйте StylesData.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...