Текущий архив: 2011.07.03;
Скачать: CL | DM;
ВнизИспользование RxTrayIcon Найти похожие ветки
← →
Yurikon (2009-11-11 15:34) [0]Добрый день!
Использую компоненту RXTrayIcon. Для восстановления приложения из трея использую
ShowWindow(Application.Handle, SW_RESTORE);
ShowWindow(Application.Handle, SW_SHOW);
ShowWindow(Application.MainForm.Handle, SW_SHOW);
Если этот код запускается из контекстного меню иконки, то все ок, прога восстанавливается и делается активной. Но если этот код назначить на дабл клик иконки, то прога просто восстанавливается из трея, но не делается активной.
Подскажите, плиз, в чем может быть проблема?
Спасибо!
← →
Leonid Troyanovsky © (2009-11-11 18:37) [1]
> Yurikon (11.11.09 15:34)
> ShowWindow(Application.MainForm.Handle, SW_SHOW);
А чего не просто: Show.
Это ж в WndProc формы происходит?
--
Regards, LVT.
← →
Плохиш © (2009-11-11 22:52) [2]Странно, я делаю в обработчике меню просто
Application.Restore;
и всё востанавливается. Пункт меню установлен для выполнения по умолчанию.
← →
Германн © (2009-11-12 01:08) [3]
> Плохиш © (11.11.09 22:52) [2]
Я когда-то (давно это было) добавлял к
> Application.Restore;
ещё две строчки
Application.BringToFront;
RxTrayIcon1.Active:=False;
Но зачем и почему уже не помню. :(
Точнее про вторую строчку помню. Она была связана с gif-анимацией иконки.
← →
TIF © (2009-11-12 03:17) [4]> Подскажите, плиз, в чем может быть проблема?
Мне кажется дело не в том, что код "назначается не там где надо", а в том, что в момент этого теста приложение сворачивается на панель задач (а не скрывается с экрана вообще) перед попыткой его восстановления
После полного скрытия окна проблем с восстановлением обычно не возникает, а вот с восстановление свернутого окна как раз будет потеря фокуса
Ну это по моим скромным наблюдениям :)
Вот минимум кода, с которым у меня таких проблем нет - фокус окну передаётся и если оно ранее было скрыто, и если оно просто было свёрнуто://Скройся с глаз долой
ShowWindow(Form_Main.Handle, SW_HIDE);
//Открой личико
ShowWindow(Form_Main.Handle, SW_RESTORE);
SetForegroundWindow(Form_Main.Handle);
Германн © (12.11.09 01:08) [3]
> Application.BringToFront;
Эта строчка, наверное, как раз для достижения той же цели. Её можно использовать вместо SetForegroundWindow - эффект будет тот же
← →
Yurikon (2009-11-13 16:59) [5]2 TIF:
Спасибо Вам!!! Все заработало!
:-)
Страницы: 1 вся ветка
Текущий архив: 2011.07.03;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.006 c