Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Программа поверх окон [D7, 2003]


Dec ©   (2006-03-14 17:26:00) 

Я написал программу, которая сворачивается в SysTray. По таймеру должно развернуться главное окно программы поверх всех других окон и сделаться активным.
Вот код:
 frmMain.Show;
 Application.Restore;
 Application.BringToFront;
 Shell_NotifyIcon(NIM_DELETE, @NIC);//Удалить иконку из SysTray'я
 Application.ProcessMessages;

Проблема в том, что программа не ведет себя, как задумывалось. Если ничего не делать, то всё нормально. Но если сделать актвиной какую-нибудь другую программу, моя прога хотя и появится поверх других, но не будет активной. А если все программы свернуть, то моё приложение по срабатыванию таймера будет только мигать на панеле задач.
Я попробовал функции BringWindowToTop, SetForegroundWindow, ShowWindow - ничего не помогает.
Подскажите, пожалуйста, как сделать так, чтобы моё приложение при любых условиях выводилось поверх окон и делалось активным.


ASoft   (2006-03-15 07:37:00) [1]


> frmMain.Show;
>  Application.Restore;
>  Application.BringToFront;
>  Shell_NotifyIcon(NIM_DELETE, @NIC);//Удалить иконку из
> SysTray'я
>  Application.ProcessMessages;


Поменяйте очередность событий. frmMain.Show - не нужно, если это не та форма, которую нужно показывать при Application.Restore


Наверх

Титульная страница Поиск, карта сайта Написать письмо