Delphi XE6/Firemonkey - получить фактическую высоту текста?

До сих пор я тестировал этот:

mainLabel.Canvas.TextHeight( 'TT' );

который возвращает 16,5, что далеко от правильной высоты текста (на самом деле около 30) на FireMonkey - Android/iOS.

  • Как получить фактическую высоту текста на платформе Firemonkey/Delphi XE6?

person Yordan Yanakiev    schedule 22.07.2014    source источник
comment
Насколько это отличается? Скорее всего, он включает в себя внутренний по крайней мере, что даст вам некоторое пространство над плоской полосой в верхней части буквы T. Не могли бы вы подробно рассказать (это касается любого хорошего вопроса) о том, в чем разница между тем, что вы ожидаете, и тем, что вы получили, пожалуйста ?   -  person David    schedule 22.07.2014
comment
Ваше изменение не помогает нам ответить на вопрос. 16,5 (пикселей?) — вполне правдоподобная высота текста для обычного шрифта размера пользовательского интерфейса. Чем то, что вы получаете, отличается от того, что вы ожидаете? Пожалуйста, покажите скриншот или что-то в этом роде — все, что поможет понять, что не так с 16.5, и это покажет нам то, что вы хотите вместо этого. Во-вторых, исследовали ли вы внутреннее опережение, и дает ли его удаление нужный вам ответ — что бы это ни было?   -  person David    schedule 22.07.2014
comment
Фактическая высота текста составляет около 30 пикселей, в то время как он все еще продолжает возвращать мне 16,5 пикселей. (прошу прощения, что не включил его в основную).   -  person Yordan Yanakiev    schedule 23.07.2014


Ответы (1)


Похоже, вы используете устройства с дисплеями с высоким разрешением.

Попробуйте умножить TextHeight на свойство Canvas.Scale и посмотрите если вы получите что-нибудь ближе к тому, что вы ожидаете.

person Martijn    schedule 23.07.2014
comment
Спасибо @Martijn. Это именно то, что я искал. - person Yordan Yanakiev; 24.07.2014