Перейти к содержанию

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

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

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

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

Тип контента


Форумы

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

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

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


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

  • Старт

    Конец


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

  • Старт

    Конец


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

Регистрация

  • Старт

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


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


Город


Интересы

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

  1. Здравствуйте Появилась задача сделать надписи так, что бы цвет букв в одном слове был разный, как на картинке например Но так и не нашел решения. Делать слова по одной букве тоже не вариант. Как поступить, какой есть выход? Может кто то уже делал и есть наработки?
  2. *** Небольшой обмен опытом *** Вижу что вопросы о размере текста довольно частые, поделюсь своими наработками. function CalcTextSize(Text: string; Font: TFont; Size: Single = 0): TSizeF; Функция для расчета размера прямоугольника, занимаемого однострочным текстом. Параметры: Text - Текст Font - Шрифт с которым будет выводиться текст Size - если 0, то Font.Size будет использоваться из Font, иначе из данного параметра Исходный код: uses System.Types, FMX.Types, FMX.Graphics, FMX.TextLayout, System.Math, System.SysUtils; function CalcTextSize(Text: string; Font: TFont; Size: Single = 0): TSizeF; var TextLayout: TTextLayout; begin TextLayout := TTextLayoutManager.DefaultTextLayout.Create; try TextLayout.BeginUpdate; try TextLayout.Text := Text; TextLayout.MaxSize := TPointF.Create(9999, 9999); TextLayout.Font.Assign(Font); if not SameValue(0, Size) then begin TextLayout.Font.Size := Size; end; TextLayout.WordWrap := False; TextLayout.Trimming := TTextTrimming.None; TextLayout.HorizontalAlign := TTextAlign.Leading; TextLayout.VerticalAlign := TTextAlign.Leading; finally TextLayout.EndUpdate; end; Result.Width := TextLayout.Width; Result.Height := TextLayout.Height; finally TextLayout.Free; end; end; function FontSizeForBox(Text: string; Font: TFont; Width, Height: Single; MaxFontSize: Single = cMaxFontSize): Integer; Функция возвращающая максимально возможный размер шрифта, для текста вписанного в заданный прямоугольник. Параметры: Text - Текст Font - Шрифт с которым будет выводиться текст Width, Height - Ширина и высота прямоугольника MaxFontSize - Максимально возможный размер шрифта Исходный код: uses System.Types, FMX.Types, FMX.Graphics, FMX.TextLayout, System.Math, System.SysUtils; const cMaxFontSize = 512; function FontSizeForBox(Text: string; Font: TFont; Width, Height: Single; MaxFontSize: Single = cMaxFontSize): Integer; var Size, Max, Min, MaxIterations: Integer; Current: TSizeF; begin Max := Trunc(MaxFontSize); Min := 0; MaxIterations := 20; repeat Size := (Max + Min) div 2; Current := CalcTextSize(Text, Font, Size); if ((Abs(Width - Current.Width) < 1) and (Width >= Current.Width)) and ((Abs(Height - Current.Height) < 1) and (Height >= Current.Height)) then break else if (Width < Current.Width) or (Height < Current.Height) then Max := Size else Min := Size; Dec(MaxIterations); until MaxIterations = 0; Result := Size; end; --- Также данные функции можно найти в этом юните
  3. При обычном режиме: GlobalUseDirect2D := True И при использовании: GlobalUseGPUCanvas := True Как добиться того, чтобы в CanvasD2D, тоже была поддержка атрибутов с цветом? Есть подозрения того, что в TTextLayuotD2D забыли добавить ее! Скачать пример TextAttribute.zip
  4. Всем привет. Реализую поведение TListBox, при котором на OnItemClick, высота Item-а увеличивается и становится виден TText (делаем Visible:=true). Анимация для наглядности: ). Реализуется так: Detail := Item.Children.Items[1]; (Detail as TText).Visible := true; ItemAni := TFloatAnimation.Create(Item); ItemAni.Parent := Item; ItemAni.StartValue := 50; ItemAni.StopValue := 150; ItemAni.PropertyName := 'Height'; ItemAni.Start; ItemAni.OnFinish := FreeItemAni; Вопрос такой. Как мне узнать сколько места займет разбитый автоматом на строки текст в TText, чтобы подстраивать высоту Item под размер текста(он получается от 1 до 7-8 строк). Как узнать на сколько подстрок разбивает TText содержимое? Сильно не пинайте, я дизайнер, а не программист.
  5. Как можно узнать, вмещается ли полностью текст в TListBoxItem? На скрине выше видно, что в выделенном TListBoxItem"э текст "ушел" вверх и вниз. Как можно изменить TListBoxItem.Height, что-бы в этот TListBoxItem полностью поместился текст? Спасибо.
  6. Как сделать Label при вводе текста в который, он будет автоматически увеличиваться по высоте при необходимости?
×
×
  • Создать...