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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2011, 20:06   #1
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию Вопрос о шрифтах

Юзабельно ли использовать в своем приложении шрифты, которых нет на машине пользователя? Например, я решил задать всем элементам Label шрифт Myriad Pro, который не есть стандартным. Как будут отображаться эти элементы на компьютере пользователя, у которого нет этого шрифта?
kettanaito вне форума Ответить с цитированием
Старый 14.09.2011, 20:16   #2
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

Будут квадратики.
Включайте в ресурсы: http://www.kansoftware.ru/?tid=1812
Voody вне форума Ответить с цитированием
Старый 14.09.2011, 21:31   #3
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

Voody, последовал тому примеру, что Вы дали. Все то и ничего, и шрифт создается, но программа просто не отображается. Главное окно не появляется. Процедура:
Код:
procedure LoadFont;
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(hInstance, 'MY_FONT', Pchar('FONTNAME'));
Res.SavetoFile(ExtractFilePath(Application.ExeName)+'Data\Corbel.ttf');
Res.Free;
AddFontResource(PChar(ExtractFilePath(Application.ExeName)+'Data\Corbel.ttf'));
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;
Если убираю SendMessage(..) то приложение запускается. Насколько исправной можно считать такую вот работу не знаю. Шрифт не загружается и не и используется программой. Пум..

Последний раз редактировалось kettanaito; 14.09.2011 в 21:34.
kettanaito вне форума Ответить с цитированием
Старый 14.09.2011, 21:34   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А может стоит PostMessage? т.е. не ждать ответа от обработчика сообщения, а продолжать программу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.09.2011, 21:38   #5
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

Код:
Res : TResourceStream;
begin
Res := TResourceStream.Create(hInstance, 'MY_FONT', Pchar('FONTNAME'));
Res.SavetoFile(ExtractFilePath(Application.ExeName)+'Data\Corbel.ttf');
Res.Free;
AddFontResource(PChar(ExtractFilePath(Application.ExeName)+'Data\Corbel.ttf'));
SendMessage(cdpmain.Handle,WM_FONTCHANGE,0,0);
Так приложение работает, но шрифт все-равно не грузит (хотя создает в нужной папке и он вполне исправен). Почему же?
kettanaito вне форума Ответить с цитированием
Старый 15.09.2011, 08:48   #6
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Где обработка ошибок для AddFontResource? А если ошибка? Правов нет?

Цитата:
Главное окно не появляется. Если убираю SendMessage(..) то приложение запускается.
Это баг в другой программе (где в "другие программы" входят и ваши программы).

Цитата:
А может стоит PostMessage? т.е. не ждать ответа от обработчика сообщения, а продолжать программу.
Наверное, лучше SendNotifyMessage или SendMessageTimeout.

Цитата:
Так приложение работает, но шрифт все-равно не грузит (хотя создает в нужной папке и он вполне исправен). Почему же?
Документация говорит - делать бродкаст. Значит - делать бродкаст.

Надеюсь, делаете это до создания формы?

Вообще, я бы использовал AddFontResourceEx - для создания приватного шрифта, а не для глобальной регистрации.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос menelay Microsoft Office Access 1 07.12.2010 18:15
Вопрос по mySQL + Вопрос по RichEdit HTL Общие вопросы Delphi 4 01.01.2010 20:22
Вопрос Velzivul Свободное общение 0 19.08.2009 18:34
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
вопрос по сокетам и общение как в ICQ.Сложный вопрос... Руслантус Общие вопросы C/C++ 2 12.08.2008 21:10