Решение проблемы с таймером в немодальной форме в DelphiDelphi , Программа и Интерфейс , Модальные формыВ процессе разработки приложения на Delphi иногда возникают ситуации, когда нужно показать пользователю Splash-форму перед главным окном приложения. Однако, если показать Splash-форму не модально, то события таймера перестают обрабатываться. В этой статье мы рассмотрим причину этой проблемы и предложим несколько решений. Причина проблемыКогда мы показываем Splash-форму модально, то приложение блокируется до тех пор, пока Splash-форма не будет закрыта. В этом случае основной цикл обработки сообщений (message loop) приложения запускается до показа Splash-формы, и поэтому все события, в том числе и таймера, обрабатываются корректно. Если же мы показываем Splash-форму не модально, то основной цикл обработки сообщений приложения еще не запущен, так как приложение не блокируется ожиданием закрытия Splash-формы. В результате, события таймера не обрабатываются, так как нет цикла обработки сообщений, который бы вызывал их обработчики. Решение проблемыРешение 1: Использование TApplication.OnIdleОдним из решений этой проблемы может быть использование события Пример кода:
В этом примере мы создаем Splash-форму в событии Решение 2: Использование отдельного потока для таймераДругим решением может быть использование отдельного потока для таймера. В этом случае таймер будет работать независимо от основного цикла обработки сообщений приложения. Пример кода:
В этом примере мы создаем Splash-форму и запускаем таймер в событии ЗаключениеВ этой статье мы рассмотрели проблему с таймером в немодальной форме в Delphi и предложили два решения: использование события В процессе разработки приложения на Delphi, если показать Splash-форму не модально, то события таймера перестают обрабатываться из-за того, что основной цикл обработки сообщений приложения еще не запущен. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Модальные формы ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |