Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Является ли шрифт шрифтом с фиксированной шириной?

01.01.2007
procedure TConsole.FontChanged(Sender: TObject);
var
  DC
: HDC;
 
Save: THandle;
 
Metrics: TTextMetric;
 
Temp: string;
begin
 
if Font.Handle <> FOldFont.Handle then
 
begin
    DC
:= GetDC(0);
   
Save := SelectObject(DC, Font.Handle);
   
GetTextMetrics(DC, Metrics);
   
SelectObject(DC, Save);
   
ReleaseDC(0, DC);
   
if not (((Metrics.tmPitchAndFamily and ff_Modern) <> 0) and
     
((Metrics.tmPitchAndFamily and $01) = 0)) then
   
begin
     
Temp := 'TConsole: ' + Font.Name +
       
' не является шрифтом с фиксированной шириной';
     
Font.Name := FOldFont.Name; { Возвращаем предыдущие атрибуты шрифта }
     
raise EInvalidFont.Create(Temp);
   
end;
   
SetMetrics(Metrics);
 
end;
 
FOldFont.Assign(Font);
 
if csDesigning in ComponentState then
   
InternalClrScr;
end;

Взято с https://delphiworld.narod.ru