Идет как-то Товарищ Комманд Ком по диску, смотрит по сторонам и удивляется: ветки у деревьев поломаны, файлы дефрагментированы, что не разберешь где какой, Командир Нортон в архив запихнут!!! Ну, пожалел его Комманд Ком, вытащил из архива и спрашивает:
- Кто ж это тебя так, бедненького?!!
А командир Нортон ему и отвечает:
- Какой ты, Товарищ Комманд Ком, добрый и заботливый... когда трезвый!!!
Включение шрифта в ваш EXE:
Используйте ваш любимый текстовый редактор, создайте *.rc файл, описывающий
шрифт:
MY_FONT ANYOL1 "Bauhs93.ttf"
Первые два параметра могут быть любыми. Они будут использоваться в программе
позже.
Затем для создания *.res файла используйте компилятор командной строки
BRCC32.EXE, поставляемый с Delphi. Если ваш файл на этапе 1 был назван
MyFont.rc, командная строка в сеансе DOS должна выглядеть так:
BRCC32 MyFont
Программа добавит в компилируемый файл созданный ресурс .rc и создаст файл с
тем же именем, за исключением расширения, которое будет .res: MyFont.res
В вашей программе добавьте директиву компилятора, чтобы включить вновь
созданный файл:
{$R MyFont.res}
Правильным будет разместить его в секции реализации после строчки {$R *.DFM}.
Добавьте процедуру создания файла из ресурса, делающим шрифт доступным для
использования. Пример:
procedure TForm1.FormCreate(Sender: TObject);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(hInstance, 'MY_FONT', Pchar('ANYOL1'));
Res.SavetoFile('Bauhs93.ttf');
Res.Free;
AddFontResource(PChar('Bauhs93.ttf'));
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;
Теперь вы можете использовать данный шрифт в своем приложении:
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Font.Name := 'Bauhaus 93';
end;
Предостережения:
Приведенный пример не предусматривает никакой проверки и защиты от возможных
ошибок.
Обратите внимание - имя файла НЕ такое же, как имя шрифта. Это допускает, что
вы знаете имя шрифта и имя его ttf-файла. Вы можете определить это, дважды
щелкнув на файле в окне Проводника.
Я рекомендую устанавливать файл шрифта в папку C:\WINDOWS\FONTS. Его легче
отыскать потом именно там.
Ваш вновь установленный шрифт может быть удален программным путем,
естественно, в случае, когда он никем не используется:
procedure TForm1.FormDestroy(Sender: TObject);
begin
RemoveFontResource(PChar("Bauhs93.ttf"))
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;
Для получения дополнительной справки по функциям AddFontResource и
RemoveFontResource загляните в электронную справку по Win32.
Включение шрифта как ресурс в EXE: создайте файл *.rc, описывающий шрифт, компилируйте его с помощью BRCC32.EXE, добавьте директиву компилятора для включения ресурса в программе и реализуйте процедуру для доступа к шрифту.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS