wm-help.net -> Электронная библиотека -> Delphi -> Вопросы и Ответы по Delphi -> Вопрос и Ответ 32 -> Версия для печати

Вопрос и Ответ 32

Вопрос и Ответ 32

Вопросы и Ответы


      32. Как во время работы приложения загружать новый шрифт?

      Большое количество одновременно установленных шрифтов замедляет работу Windows. Поэтому, при использовании специфических шрифтов, бывает полезно загружать их только на время работы приложения, а после работы удалять их из памяти. Для этого используются две функции:

      function AddFontResource(Filename: PChar): Integer; и

      function RemoveFontResource(Filename: PChar): Bool;

      единственным параметром им необходимо передавать имя файла шрифта. Первая функция возвращает количество, действительно, загруженных шрифтов. Фирма Microsoft рекомендует после загрузки или удаления шрифта посылать всем открытым окнам сообщение, об изменении списка доступных шрифтов.

      Пример:

      Использование гипотетического шрифта "newfont.ttf" с именем "New Font Name".

      ............

      {Загрузка нового шрифта}
      procedure TForm1.FormCreate(Sender: TObject);
      begin

        IF AddFontResource('newfont.ttf') <> 0 THEN

          SendMessage($FFFF, wm_FontChange, 0, 0);

      end;

      ............

      {Использование нового шрифта}
      procedure TForm1.FormPaint(Sender: TObject);
      begin

        Canvas.Font.Name := 'New Font Name';
        Canvas.TextOut(10, 10, 'Привет!');

      end;

      ............

      {Удаление нового шрифта из памяти}
      procedure TForm1.FormClose(Sender: TObject);
      begin

        IF RemoveFontResource('newfont.ttf') THEN

          SendMessage($FFFF, wm_FontChange, 0, 0);

      end;

      ............


...предыдущая страница следующая...
оглавление

Rambler's Top100