![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно узнать, минимизировано ли главное окно приложения? [D6, Win95/98, Win2k, WinXP]
_Вован_ © (2004-04-06 16:21:00)Собственно вопрос в теме:)
Mim1 (2004-04-07 07:02:00) [1]OnMinimize event (TApplication)
GanibalLector (2004-04-06 21:12:00) [2]Удалено модератором
Игорь Шевченко (2004-04-06 20:26:00) [3]
> Итак, уважаемые мастера, повторяю вопрос: как программно
> изловить ситуацию минимизированности приложения, чтобы в
> этом случае выполнить некие действия?
Обрабатывать сообщение WM_SYSCOMMAND с (wParam and $FFF0) = SC_MINIMIZE
DVM (2004-04-06 19:55:00) [4]И опять последует ответ IsIconic. Все работает прекрасно. Просто некоторые программы мудрят с главными окнами или скрывают окна вместо минимизации. Можно еще IsWindowVisible попробовать.
_Вован_ (2004-04-06 18:27:00) [5]2 Digitman
Должен выполняться тот кусок кода по ветвлению, при котором IsIconic(Application.MainForm.Handle) = True
Т.е. я пишу некий код для TTimer (Enabled:=True; Interval:=2000), например такой:
if IsIconic(Application.MainForm.Handle)
then ShowMessage('Приложение минимизировано')
else ShowMessage('Приложение видимо');
И пока приложение НЕ минимизировано, каждых 2 секунды показывается сообщение "приложение видимо", а как только приложение минимизировать (TTimer ведь не останавливаю!), сообщения перестают выдаваться.
Хорошо, я знаю, что Вы сейчас скажете:) Давайте для чистоты эксперимента будем накапливать значение некоей переменной вместо СендМессадж. Попробуйте - при минимизированном приложении значение накапливаться не будет, пробовал...
Итак, уважаемые мастера, повторяю вопрос: как программно изловить ситуацию минимизированности приложения, чтобы в этом случае выполнить некие действия?
Digitman (2004-04-06 17:27:00) [6]
> ничего не происходит
а что , по-твоему, должно происходить ?
_Вован_ (2004-04-06 17:00:00) [7]Прикол в том, что функция IsIconic не работает при минимизированном приложении. Т.е. непонятно, какое значение она выдает при этом.
Если например поставить ее в таймер и заставить что-либо делать при условии, когда IsIconic=True - ничего не происходит.
Собственно мне надо, чтобы по TTimer при условии минимизированности приложения что-либо делалось отличное от того периода времени, когда приложение нормал или максимизэ.
Игорь Шевченко (2004-04-06 16:34:00) [8]IsIconic(Application.MainForm.Handle)