Советы по Delphi

         

Проверка шрифта с фиксированной шириной


Посмотрите в библиотеке console.zip от Danny Thorpe -- он проверяет, является ли шрифт шрифтом с фиксированной шириной. Вот код, который делает это:

procedure TConsole.FontChanged(Sender: TObject);varDC: HDC;Save: THandle;Metrics: TTextMetric;Temp: String;beginif Font.Handle <> FOldFont.Handle thenbeginDC := 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)) thenbeginTemp := 'TConsole: ' + Font.Name + ' не является шрифтом с фиксированной шириной';Font.Name := FOldFont.Name; { Возвращаем предыдущие атрибуты шрифта }raise EInvalidFont.Create(Temp);end;SetMetrics(Metrics);end;FOldFont.Assign(Font);if csDesigning in ComponentState thenInternalClrScr;end;

Andy King. [000728]



Содержание раздела