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

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

Помогите вызвать форму на передний план. [D5, D6, NT4, Win2k, WinXP]


Death ©   (2002-02-09 23:19:00) 

В модуле формы описано:


procedure TForm1.FormCreate(Sender: TObject);
begin
application.OnMinimize:=MyMinimize;
application.OnRestore:=MyRestore;
end;

procedure TForm1.MyMinimize(Sender: TObject);
begin
ShowWindow(Application.Handle,sw_Hide);
end;

procedure TForm1.MyRestore(Sender: TObject);
begin
ShowWindow(Application.Handle,sw_ShowNormal);
SetForegroundWindow(Application.MainForm.Handle);
end;


Прога загружается уже минимизированной.
минимизируется в трей (TRxTrayIcon).
при двойном нажатии востанавливается отлично.

А теперь задача:
по таймеру (250 мс) проверяется список запущенных задач и если найденна некоторая задача (запуск её) - надо всплыть из трея и показаться на переднем плане.
Использую: Application.Restore
Под 9х всё работает, под 2000 и ХР (может и под НТ4 - непробовал) - только моргает в панели задач и все - наверх выползать и не собирается.
Пробовал включать на форме свойство "StayOnTop" - результат тот-же.

кто, что посоветует?


Suntechnic   (2002-02-11 07:48:00) [1]

См. http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1012232228&n=0


Raptor   (2002-02-10 17:29:00) [2]

где это находиться в настройках?
можно ли это обойти?
храниться ли это в реестре?
Насколько мне известно, этого нет в стандартных настройках, по крайней мере я не нашел. Я изменяю эту настройку с помощью TweakUI, а он что то меняет в реестре. Я отловил, что при установленой опции ключ ForegroundLockTimeoutимеет такое значение

[HKEY_CURRENT_USER\Control Panel\Desktop]
"ForegroundLockTimeout"=dword:00030d40

А при снятой

[HKEY_CURRENT_USER\Control Panel\Desktop]
"ForegroundLockTimeout"=dword:00000000


Death   (2002-02-10 00:34:00) [3]

где это находиться в настройках?
можно ли это обойти?
храниться ли это в реестре?


Raptor   (2002-02-10 00:07:00) [4]

В вынь2к есть такая штука в настройках как запрет перехвата фокуса, что бы всякие там проги, которые почему-то возомнили себе, что их хотят видеть, не мешали юзеру работать.


Наверх

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