Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Странности программы


Крылов И.В.   (04.10.17 16:41

Заметил что если убрать строки внедряющие шрифты:
AddFontResource('eanbwrp36tt.TTF') ;
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
то зависание пропадает. В чем может быть проблема?
ОС блокирует внедрение шрифта?

P.S. Шевченко пиши конкретно если что не нравится.


Крылов И.В.   (04.10.17 16:47[1]

sniknik ©   (04.10.17 08:29) [1]
> С чем может быть связано такое поведение программы?
так написано, поведение определяется написанием, скорее всего в событии создания форм у тебя длительные операции типа открытия баз/чтение из сети, инета/или любое другое. с базами кстати не обязательно в событии, достаточно в дизайн тайм открыть соединение/таблицу. ну и может быть где то взаимоблокировка в том же месте чего то.

внедрение шрифтов было прописано на создании гл.формы


sniknik ©   (04.10.17 18:17[2]

тормозит скорее всего не внедрение, а рассылка сообщений... ну, по логике. ты же это всем окнам системы посылаешь.

+
не точно, не пробовал, но должно получиться, сделай в AddFontResource до создания форм (до Application.Initialize;) в файле проекта. тогда твои формы создадутся с уже присутствующим в системе шрифтом, и оповещать их будет не нужно. а формы вне твоего проекта... уверен что им этот шрифт нужен? пусть себе не знают.


sniknik ©   (04.10.17 18:22[3]

http://delphimaster.ru/cgi-bin/forum.pl?id=1421592418&n=0
> Все дело оказалось в SendMessage. Заменил SendMessage на PostMessage и приложение запустилось.

верная догадка похоже, но вот менять SendMessage на PostMessage при том что можно убрать совсем, мне кажется неправильно.


Крылов И.В.   (04.10.17 19:01[4]

>sniknik Я с трудом нашел что проблема в шрифтах, кучу всего при старте повырубал пока понял где траблы... )) Вообще процедура подключения шрифта уже не нужна, осталась по недосмотру, так-как не приводила к постоянным зависонам, а временами,что тоже оч.странно.. Так что теперь буду знать и коллегам по форуму можт пригодится...


Игорь Шевченко ©   (04.10.17 22:40[5]

https://stackoverflow.com/questions/1951658/sendmessagehwnd-broadcast-hangs

For that reason you should always use SendNotifyMessage or SendMessageTimeout when you use HWND_BROADCAST


Крылов И.В.   (05.10.17 09:12[6]

Спасибо коллеги! Вопрос закрыт.


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо