Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2012, 04:08   #1
Suny-o
Пользователь
 
Аватар для Suny-o
 
Регистрация: 03.03.2012
Сообщений: 33
По умолчанию Как загрузить шрифт из конкретного файла?

Есть шрифт (pass.ttf) который отображает вместо любого символа звездочки.

На случай если шрифт не установлен в системе - положил его в папку с программой и хочу использовать из этой папки.

Встает вопрос - как загрузить шрифт (например для Label1.Font) из конкретного файла со шрифтом?
QuickSortStr04.rar работа с динамическими 1D,2Dмассивами строк
* быстрая сортировка по любому алфавиту, добавление, удаление элементов.
* чтение, запись(файл<-->дин. массив)

Последний раз редактировалось Suny-o; 03.03.2012 в 05:26.
Suny-o вне форума Ответить с цитированием
Старый 03.03.2012, 05:08   #2
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Допустим так
Код:
AddFontResourceA(PChar(GetCurrentDir+'\pass.ttf'));
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
Label1.Font.Name:='pass';
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 03.03.2012, 05:39   #3
Suny-o
Пользователь
 
Аватар для Suny-o
 
Регистрация: 03.03.2012
Сообщений: 33
По умолчанию

Спасибо!

С помощью Google нашел на http://forum.vingrad.ru/forum/topic-...ry41338/0.html похожий код.

Теперь программа выглядит так.

Цитата:
function ProgramDirectory: String;
begin
ProgramDirectory:=extractfilepath(p aramstr(0))
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
RemoveFontResource(StringToOleStr(P rogramDirectory+'pass.ttf'));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
AddFontResource(StringToOleStr(Prog ramDirectory+'pass.ttf'));
//Или так
//AddFontResource('С:\Путь\pass.ttf') ;
Edit1.Font.Name:='Pass';
end;
Обращаю внимание на то, что цитирование и выделение текста на форуме глючит и вставляет пробелы в текст. Возможно это общая проблема см. ниже.

Все работает - процедура простая:
1. AddFontResource('С:\Путь\pass.ttf') ;
2. Edit1.Font.Name:='Pass'; Примечание: У шрифта есть внутренее имя и в данном случае обращение идет к нему.

Убрать
RemoveFontResource('С:\Путь\pass.tt f');

См. также Как проинсталлировать свои шрифты?
QuickSortStr04.rar работа с динамическими 1D,2Dмассивами строк
* быстрая сортировка по любому алфавиту, добавление, удаление элементов.
* чтение, запись(файл<-->дин. массив)

Последний раз редактировалось Suny-o; 03.03.2012 в 05:59.
Suny-o вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать шрифт из файла и сохранить его в виде TFont phomm Общие вопросы Delphi 4 22.12.2011 23:07
Привязка к скачке файла конкретного пользователя yan_komlev HTML и CSS 2 17.06.2011 11:21
как загрузить из файла в 4 Stringgrid'а Yur@ Общие вопросы Delphi 1 15.10.2010 12:26
Как загрузить массив из файла Нокс Помощь студентам 5 06.08.2010 13:37
загрузить из файла Betty Общие вопросы Delphi 2 26.06.2009 20:40