Конференция "Начинающим" » Странности программы
 
  • Крылов И.В. (04.10.17 16:41) [0]
    Заметил что если убрать строки внедряющие шрифты:
    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://pda.delphimaster.net/?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]
    Спасибо коллеги! Вопрос закрыт.
 
Конференция "Начинающим" » Странности программы
Есть новые Нет новых   [118626   +14][b:0][p:0]