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

Неверная ширина текста из .Canvas.TextWidth


POV

Вопрос

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

  • 0
39 минут назад, POV сказал:

Когда задал компоненте новый TextSettings функция TextWidth возвращает ширину текста для шрифта по умолчанию. Хотя отрисовывает с моими новыми настройками.

Отчего?

https://habrahabr.ru/post/317814/

Ссылка на комментарий
  • 0
  • Модераторы

уже много раз обсуждалось, что TTextLayout нужно инициировать до функции, иначе она косячит при большом кол-ве текста

я делаю глобальную переменную и в блоке initialization создаю, ну и в finalization освобождаю. пока глюков не было

Berlin если что

Ссылка на комментарий
  • 0
  • Модераторы
2 минуты назад, POV сказал:

А почему оно не инициализировано в родной библиотеке?

ну так там и косячит, незнаю почему они не пофиксят

Ссылка на комментарий
  • 0
В 08.02.2017 в 11:10, POV сказал:

Когда задал компоненте новый TextSettings функция TextWidth возвращает ширину текста для шрифта по умолчанию. Хотя отрисовывает с моими новыми настройками.

Отчего?

Оттого, что ширина текста определяется для шрифта и размера указанного в Canvas, а не для шрифта из компонента.

Например, в TLabel.TextSettings.Font  и в его TLabel.Canvas.Font размер шрифта будет разный (в Canvas он дефолтный - 12).

В FMX компонентах Canvas, кстати, общий и один и тот же - это Canvas формы.

Если в OnResize чего-либо, сделать так: 

  Label.Canvas.Font.Size := Label.Font.Size;
  или 
  Label.Canvas.Font.Assign(Label.Font); (чуть дольше)

  lRealWidth := Label.Canvas.TextWidth(Label.Text); 

То размер будет корректный.

Изменено пользователем ENERGY
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...