Как обнулить tmInternalLeading для шрифта в Delphi VCL

У меня есть приложение Delphi 10.2.3 для Windows, в котором я хочу изменить свойства "tmLeadingInternal" и "tmLeadingExternal" для шрифта. Шрифт создается «на лету» путем создания TLogFont и назначения его соответствующему холсту.

Я могу получить эти свойства в порядке с помощью GetTextMetrics, и в документации Microsoft говорится: «Дизайнер может установить этот элемент равным нулю». Однако я не вижу способа сделать это в Delphi.

Я полагаю, что «дизайнер» — это дизайнер шрифтов.

Sertac Akyuz 28.03.2019 23:22

@Sertac - хммм - я подозреваю, что вы правы, и в этом случае это не годится.

TomB 28.03.2019 23:23

Я не совсем понимаю, однако, какое отношение дизайнер имеет к внешнему ведущему. Там ничего нет, ни акцента, ни диакритических знаков и т.

Sertac Akyuz 28.03.2019 23:26

@SertacAkyuz: внешний интерлиньяж касается интервала (за пределами самого шрифта) между строками, когда текст переносится на несколько строк, IIRC. В этом пространстве не допускается никакой рисунок, и дизайнер шрифтов может указать, что между строками допускается минимальное расстояние для предполагаемой разборчивости. Многие шрифты не предоставляют это значение, поэтому программное обеспечение может управлять межстрочным интервалом. (Хотя я мог и ошибаться.

Ken White 29.03.2019 00:58

@Ken - Вы правы в том, что внешнее является компонентом «межстрочного интервала», и я полагаю, что между нижней частью нисходящей части и внутренним началом следующего ряда может не быть места.

TomB 29.03.2019 01:43

@TomB: Я полагаю, что можно, но это не значит, что у дизайнера шрифтов были те же мысли. :-) Однако Сертак был прав - документы, которые вы цитировали, ссылаются на то, что дизайнер шрифта может указать ноль. Поскольку это значение встроено в сам шрифт, его нельзя изменить во время выполнения. Для этого вам придется изменить файл шрифта.

Ken White 29.03.2019 03:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
74
0

Другие вопросы по теме

Похожие вопросы

Python слишком много подпроцессов?
Как получить скрытый/частный элемент пользовательского интерфейса из UIAutomation, я вижу его в Spy++, но не могу получить к нему доступ в коде, только его родители и братья и сестры
Windows Ethernet показывает «Сетевой кабель отключен» при подключении к компьютеру с Linux
Как запускать скрипты git bash при запуске Windows
Перемещение пакетного файла в каталоги, добавленные во время работы пакетного файла
Потоки Windows: как сигнализировать другим потокам об освобождении мьютекса?
Поведение "?" подозрительно при попытке переименовать все файлы текущей папки (через пакетный скрипт), ожидая, что расширение не изменится
Как программно получить видеофайл, воспроизводимый в настоящее время в VLC, с помощью VB.net
Пакетный файл ничего не распознает в операторе IF-ELSE
Как убрать посторонний вывод в консоль после ctrl-c в винде?