[Lazarus] TFont.size

Howard Page-Clark hdpc at talktalk.net
Fri May 1 23:24:07 CEST 2009

On Fri, 1 May 2009 17:35:19 -0300
Felipe Monteiro de Carvalho <felipemonteiro.carvalho at gmail.com> wrote:

> Hello,
> Does anyone the difference between TFont.Height and TFont.Size?
> ...
> A rather exoteric property IMHO. Or yet another Windowsism in Delphi

Not so much a Windowsism as baggage from the days before screens when
'printing' was never to a screen but only a process that transferred
ink from hand set lead typeface to paper. Traditionally type sizes were
measured in printer points, defined as 1/72 inch as measured by the
"EM" square of the font. The "EM" square is the size of the lead block
that would enclose a capital letter M (the block is fractionally
bigger than the actual printed size of the M).

The two different properties Delphi provides to set the size of a font
relate to the two possible expressions of the font: printing to paper
and 'printing' to the screen.

If you specify the font's size using the Font.Size property, the font
is scaled to match the size you specify in printer points.

If you specify the font's size using the Font.Height property, the font
is scaled in pixels. If you specify the Height as a positive value, the
font's external leading is included in the calculation. If you specify
a negative value, the font's external leading is not included in the
calculation. (Traditionally leading, pronounced like the metal lead,
means the line spacing, dating from the time when thin strips of lead
were placed between lines of type to increase the space between lines).


More information about the Lazarus mailing list