![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
|||
|
|||
|
Отлично! Спасибо засовет, всё работает
![]() |