|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Использование своего шрифта в программе
Добрый день, возникла проблема . Необходимо использовать свой шрифт в программе, в системе шрифт не установлен.
Делаю так в папку с приложением помещаю файл шрифта .TTF исходный код: Код:
unit Font; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} {$IFDEF WIN32} var ss : array [ 0..255 ] of Char; begin AddFontResource( PChar( 'Xenia Condensed Cyrillic.TTF' ) ); AddFontResource ( StrPCopy ( ss, 'Xenia Condensed Cyrillic.TTF' )); SendMessage ( HWND_BROADCAST, WM_FONTCHANGE, 0, 0 ); RemoveFontResource(Pchar('Xenia Condensed Cyrillic.TTF')); end. Текст должен выводиться в Label(свойства font Name:Xenia Condensed Cyrillic ; font Charset: DEFAULT_CHARSET) но текст не появляется , что делаю не так ? |
#2
|
||||
|
||||
Потому что ты одновременно добавляешь и удаляешь сделай так
Код:
procedure TForm1.FormCreate(Sender: TObject) ; begin AddFontResource('Xenia Condensed Cyrillic.TTF') ; SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ; end; procedure TForm1.FormDestroy(Sender: TObject; var Action: TCloseAction) ; begin RemoveFontResource('Xenia Condensed Cyrillic.TTF') ; SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ; end; |
#3
|
|||
|
|||
Неработает
Исправил код, но при запуске приложения отображается не тот шрифт ,который находиться в директории программы |
#4
|
|||
|
|||
Наверное дело вот в чём. Во-первых, вызов SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); происходит в событии OnCreate, т.е. форма ещё не создана а ты уже посылаешь ей сообщение. Попробуй это написать в OnShow.
Во-вторых, убедить что твои Labelы используют этот шрифт, т.е. свойство Font.Name стоит твой шрифт. В третьих, сделай проверку на ошибки Код:
if AddFontResource('Xenia Condensed Cyrillic.TTF') = 0 then ShowMessage('Не удалось добавить шрифт'); |
#5
|
|||
|
|||
Отлично! Спасибо засовет, всё работает
|