Доброго времени суток, уважаемые мастера.
Столкнулся с такой бедой. У человека не запускается моя программа. Начали выяснять причину, дело оказалось в загрузке шрифта при создании главной формы. Запускает программу, ничего не происходит. Процесс висит (в диспетчере задач это видно), а программа не запускается.
Чтобы отбросить все вопросы, я создал новый проект, поместил на него Label. Проблема не ушла.
http://s020.radikal.ru/i703/1501/f8/0392434074a6.pngКод такой:
procedure TStartForm.FormCreate(Sender: TObject);
begin
AddFontResource(PChar(ExtractFileDir(Application.ExeName) + '\CyrillicGoth.ttf'));
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;
procedure TStartForm.FormDestroy(Sender: TObject);
begin
RemoveFontResource(PChar(ExtractFileDir(Application.ExeName) + '\CyrillicGoth.ttf'));
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;
Попробовал загружать шрифт не при создании формы, а при нажатии кнопки:
procedure TStartForm.Button1Click(Sender: TObject);
begin
AddFontResource(PChar(ExtractFileDir(Application.ExeName) + '\CyrillicGoth.ttf'));
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
Label1.Font.Name := 'CyrillicGoth';
end;
Приложение запускается, но при нажатии на кнопку, программа зависает.
Под виртуалкой у него все запускается. На другом ПК с такой же виндой (7 Ultimate) и таким же антивирусом, запускается. Антивирус отключал, не помогает. Запускал от имени администратора, безрезультатно. Я сам ни разу с таким не сталкивался. Поэтому не могу дать каких-то рекомендаций.
На подобную проблему жалуется не первый человек.
У одного оказалась проблема в установленном ПО для мыши Logitech, которой он уже не пользовался. Удалил ПО, все пошло. Какая взаимосвязь?
В чем может быть проблема?
Получается, подобный способ загрузки шрифта нежелателен? Лучше устанавливать шрифт вручную? Нигде не нашел информации, что может возникнуть беда подобного рода.