Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2011.07.03;
Скачать: [xml.tar.bz2];

Вниз

Использование 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
15-1300355136
OW
2011-03-17 12:45
2011.07.03
Работник отдела персонала - что за зверь?


15-1300215986
студент-первокурсник
2011-03-15 22:06
2011.07.03
именование методов, переменных


11-1234851691
xz386
2009-02-17 09:21
2011.07.03
фукция копирования


2-1301145994
VikOss
2011-03-26 16:26
2011.07.03
глюк StringGrid


2-1301060385
fynjy93
2011-03-25 16:39
2011.07.03
sql запрос - проблема разделения на части





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский