Перейти к содержанию
  • Регистрация

Поиск сообщества

Показаны результаты для тегов 'tlistviewitem.height'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
  • Вопросы по использованию RAD Studio
  • Native FGX
  • Обучение
  • Поиск специалистов по FireMonkey
  • Дополнительные ресурсы по FireMonkey
  • Организация работы данного форума
  • Видеокурсы

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Защита от ботов


Город


Интересы

Найдено: 1 результат

  1. При расчете высоты TListItemText приходилось использовать костыль - указывать размер шрифта отличный от 12 (например 12.01 и т.д.), если эти пренебречь, то расчет высоты не работал и текст или резался или высота итема оказывалась гораздо больше текста. Проблема в том, что на стадиях расчета высоты, к TListItemText еще не применен стиль, и параметры шрифта не соответствуют тому как будет выглядеть окончательный вариант на экране. Для правильного расчета высоты нужно выдернуть шрифт из стиля, делается это вот так: Var AFontObject : TFontObject; AListItemText : TListItemText; ... AListItemText:=TListItemText(AItem.View.FindDrawable(AName)); if AListItemText=Nil then AListItemText:=TListItemText.Create(AItem); AFontObject:=(AListView.FindStyleResource('font') as TFontObject); if Assigned(AFontObject) then AListItemText.Font.Assign(AFontObject.Font); //Теперь вычисление высоты имеет смысл и не нужно задавать размер шрифта - он берется из стиля. AListItemText.Height:=CalculateHeight(AListItemText, AListView, FTextLayout); Или можно затолкать это действие в функцию вычисления высоты: function CalculateHeight(const AListItemText : TListItemText; const AListView : TListView; const FTextLayout : TTextLayout) : Single; Var AFontObject : TFontObject; begin FTextLayout.BeginUpdate; try FTextLayout.Text:=AListItemText.Text; FTextLayout.MaxSize:=TPointF.Create(AListItemText.Width, TTextLayout.MaxLayoutSize.Y); AFontObject:=(AListView.FindStyleResource('font') as TFontObject); if Assigned(AFontObject) then FTextLayout.Font.Assign(AFontObject.Font) else FTextLayout.Font.Assign(AListItemText.Font); FTextLayout.WordWrap:=AListItemText.WordWrap; FTextLayout.Trimming:=AListItemText.Trimming; FTextLayout.HorizontalAlign:=AListItemText.TextAlign; FTextLayout.VerticalAlign:=AListItemText.TextVertAlign; finally FTextLayout.EndUpdate; end; // Result:=FTextLayout.Height * 1.4; // Теперь этот костыль не нужен Result:=FTextLayout.Height; end; Внимание! Если вы заполняете еще невидимый на экране ListView, не забудьте выполнить ListView.ApplyStyleLookup перед добавлением Items, иначе не получите правильный размер шрифта из стиля.
×
×
  • Создать...