Почему основная форма Delphi WindowState возвращается как "wsNormal", когда окно свернуто?
У меня есть приложение мониторинга, написанное на Delphi 7, которое работает на части дополнительного монитора. Я хотел бы, чтобы он восстановил себя до нормальной видимости, если окно будет свернуто (например, если я использую команду "Windows-D" (view desktop) на главном мониторе)
Я пробовал этот код, активируемый таймером каждые несколько секунд:
if (Mainform.WindowState <> wsNormal ) then
Mainform.WindowState := wsNormal; {restore main window if minimized}
Это не работает. Чтобы отладить его, я изменил код для регистрации значения Mainform.WindowState в файл, как программа бегущий. Значение остается wsNormal даже при минимизации главного окна формы. Почему?
1 ответов
потому что основная форма не свернута. Когда приложение свернуто, VCL просто скрывает основную форму. Вы можете проверить, если приложение свернуто и восстановить, если да:
if IsIconic(Application.Handle) then
Application.Restore;