Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.009 c
2-1301350488
Германн
2011-03-29 02:14
2011.07.03
Непонятный глюк.


2-1300958713
Дмитрий С
2011-03-24 12:25
2011.07.03
Есть какие нибудь известные грабли Graphics и много-поточности.


8-1212752371
zuzick
2008-06-06 15:39
2011.07.03
Отключить звук в TMediaPlayer


15-1300699590
CRLF
2011-03-21 12:26
2011.07.03
Unicode, есть ли символ?


2-1301387189
ZV
2011-03-29 12:26
2011.07.03
Как вывести значение переменной в виде символа