Проверка на активность формы возвращает True после сворачивания

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Shouldercannon
Сообщения: 74
Зарегистрирован: 08 июн 2008, 15:49

28 дек 2014, 11:19

Доброго времени суток!
Не могу понять в чём дело. Если форму свернуть с помощью иконки Свернуть в верхнем правом углу формы, то проверка на активность формы возвращает False. Если форму свернуть кликнув по кнопке формы на Панели задач, то проверка на активность возвращает True.
Помогите, пожалуйста разобраться.

У каждой формы есть своя кнопка на панели задач благодаря

Код: Выделить всё

procedure TForm.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
end;
Что делаем:
1. Запускаем приложение, нажимаем кнопку Test (у нас есть 3 секунды) и сразу же сворачиваем форму на Панель задачь через кнопку Свернуть в верхнем правом углу формы. В данном случае всё нормально и звук не проигрывается.
2. Запускаем приложение, нажимаем кнопку Test (у нас есть 3 секунды) и сразу же сворачиваем форму на Панель задачь через кнопку формы на Панели задач. В данном случае звук проигрывается говоря о том, что форма активна, но она свёрнута и не показывается.

Test.zip
Аватара пользователя
Duncon
Сообщения: 1974
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

28 дек 2014, 13:04

Усложняете Form1.Active или Form1.Visible или что-то типа GetForegroundWindow погуглите.
[syntax=Delphi] [/syntax]
Ответить