Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема со сворачиванием в Tray
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - Система
misterio
Сообственно весь способ описан тут : ]]>http://forum.sources.ru/index.php?showtopic=8557]]> или в базе данных.

Но у меня возникла проблема. Програма сама сворачиваеться в трэй, но разворачиваться не хочет никак.
Вот кусочек, который отвечает за разворот :

procedure TForm1.IconMouse(var Msg:TMessage);
Var p:tpoint;
begin
GetCursorPos(p); // Запоминаем координаты курсора мыши
Case Msg.LParam OF  // Проверяем какая кнопка была нажата
  WM_LBUTTONUP,WM_LBUTTONDBLCLK: {Действия, выполняемый по одинарному или двойному щелчку левой кнопки мыши на значке. В нашем случае это просто активация приложения}
                   Begin
                    Ic(2,Application.Icon);  // Удаляем значок из трея
                    ShowWindow(Application.Handle,SW_SHOW); // Восстанавливаем кнопку программы
                    ShowWindow(Handle,SW_SHOW); // Восстанавливаем окно программы
                   End;
  WM_RBUTTONUP: {Действия, выполняемый по одинарному щелчку правой кнопки мыши}
   Begin
    SetForegroundWindow(Handle);  // Восстанавливаем программу в качестве переднего окна
    PopupMenu1.Popup(p.X,p.Y);  // Заставляем всплыть тот самый TPopUp о котором я говорил чуть раньше
    PostMessage(Handle,WM_NULL,0,0);
   end;
End;
end;


Сообственно не срабатывает вот это вообще :

WM_LBUTTONUP,WM_LBUTTONDBLCLK: {Действия, выполняемый по одинарному или двойному щелчку левой кнопки мыши на значке. В нашем случае это просто активация приложения} 
                   Begin
                    Ic(2,Application.Icon);  // Удаляем значок из трея
                    ShowWindow(Application.Handle,SW_SHOW); // Восстанавливаем кнопку программы
                    ShowWindow(Handle,SW_SHOW); // Восстанавливаем окно программы
                   End;


А если нажата вторая кнопка на мише, то срабатывает только PopupMenu1...

 PopupMenu1.Popup(p.X,p.Y);


Остальное все вроде игнорируеться. Компилировалось на GodeGear RAD Studio.
etc
Цитата(misterio @ 24:06:2008 - 11:40) *
Сообственно не срабатывает вот это вообще :
Докажите.
misterio
Цитата
Докажите.


Нажимаю F7 и смотрим что делает программа. Это рядки просто пропускаються(такое впечатление), поскольку никаких действий нету! Ни на mouse1 ни на mouse2. А не срабатывает скорее всего потому что в Msg не передаеться парамерт....почему?


P.S. Не можете ничего подсказать - лучше не пишите!
etc
Цитата(misterio @ 24:06:2008 - 16:32) *
Нажимаю F7 и смотрим что делает программа
"Бездоказательно, дорогой профессор, бездоказательно!" (с), просто так, по F7, вы туда не попадете .
misterio
Цитата
"Бездоказательно, дорогой профессор, бездоказательно!" (с), просто так, по F7, вы туда не попадете .


Не вижу никаго резона разводить тут флуд и умничать. Я говорю о том, что почему-то не работает оработчики события на нажатия mouse1, mouse2. Не знаю что там с F7, но программа циклически скачет :

Цитата
GetCursorPos(p);
Case Msg.LParam OF
...
End;


А внутрь не заходит...И проблема в этом. Прошу помочь, если кто-то что- знает по теме.... mellow.gif
etc
Цитата(misterio @ 24:06:2008 - 18:26) *
А внутрь не заходит...И проблема в этом.
Установите брэкпоинт на строке Ic(2,Application.Icon);. и/или логируйте все что туда приходит, т.е. скидывайте в файл все Msg.LParam и Msg.RParam, потом изучайте.
Но что то есть опасения, что вы чего-то не договариваете, т.к. код предтавленный по ссылке у меня работает, правда D7, но врядли это с этим связано.


Цитата(misterio @ 24:06:2008 - 18:26) *
Я говорю о том, что почему-то не работает оработчики события на нажатия mouse1, mouse2.
Что такое "mouse1, mouse2"?
misterio
Цитата
Что такое "mouse1, mouse2"?


Ну нажатия на кнопки мыши!
Цитата
Но что то есть опасения, что вы чего-то не договариваете, т.к. код предтавленный по ссылке у меня работает, правда D7, но врядли это с этим связано.


Да...какой мне резон что-то недоговарить, если не получаеться. Я ж просто взял и скопировал код на form, ничего своего еще не успел добавить. Ладно буду пробовать! dry.gif


Добавлено через 10 мин.


Странно...все переделал с нуля - работает....оч. интересно!
etc
Цитата(misterio @ 24:06:2008 - 19:57) *
Только что такое D7..?
Очевидно Delphi 7 smile.gif
Цитата(misterio @ 24:06:2008 - 19:57) *
Я ж просто взял и скопировал код
Я тоже скопировал, и работает. Да и яж говорю, что-то странно, что WM_RBUTTONUP работает, а WM_LBUTTONUP нет, мистика какая-то О_о
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.