Возможно, вы захотите взглянуть на эту страницу, где обсуждается размер шрифта и баллы .
Для преобразования между точками и размером в пикселях используется следующее:
Arial 12pt at 96 dpi:
font size in points 12
font size in pixels = ------------------- × 96 dpi = ---- × 96 = 16 pixels
72 points per inch 72
Вы можете использовать это для своего преобразования. Вам просто нужно знать о возможных различиях в разрешении экрана, как заявляет Blorgbeard. Точки обычно используются для описания размера на бумаге. Вам нужно решить, как вы хотите отобразить это на экране. Например, многие программы позволят вам установить уровень масштабирования. Это не меняет размер отпечатка на бумаге, но влияет на высоту пикселей на экране.
В зависимости от того, что вы пытаетесь выполнить, вам может потребоваться получить фактические размеры шрифта. Если вы пытаетесь выяснить, как именно шрифт составлен, взгляните на Получение метрики шрифта Код на этой странице использует библиотеки .Net, но имеет хорошее объяснение. Если вы хотите получить текстовые метрики в Delphi, вы должны использовать функцию GetTextMetrics .
Как сказал Роб в своем комментарии, вы можете рисовать текст на определенной высоте, установив для свойства Font.Size отрицательную высоту в пикселях. Затем Windows вытянет текст на этой высоте. В этом случае вам не нужна конкретная буква или ширина, как у вас в функции прототипа. Для данного размера шрифта каждая буква будет иметь разную высоту и ширину. И.Е. заглавные буквы будут выше строчных, а буквы типа «W» будут шире букв типа «i».