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

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

PopupMenu + иконка в трее — не закрывается нормально... [D7, Win2k]


Dmy ©   (2004-09-25 16:32:00) 

Создал иконку в трее срадствами WinAPI и подключил к ней PopupMenu таким образом:

procedure TfmPreferences.IconCallBackMessage(var Msg: TMessage);
var
 P: TPoint;
begin
 if Cardinal(Msg.LParam) = WM_RBUTTONDOWN then
   begin
     GetCursorPos(P);
     pmMenu.Popup(P.X, P.Y);
     PostMessage(self.Handle, WM_USER, 0, 0);
   end;
end;


Всё бы хорошо, но PopupMenu должно при потере фокуса закрываться, а оно не закрывается до тех пор, пока не нажмёшь на меню или окно программы... :Ъ Подскажите, как бороться.


Stefan   (2004-09-25 16:48:00) [1]

Попробуй поменять содержимое твоей процедуры

begin
 case Cardinal(Msg.LParam) of
      WM_LBUTTONUP: begin // левая кнопка мыши
                      SetForegroundWindow(self.Handle);
                    end;
      WM_RBUTTONUP: begin // правая кнопка мыши
                      GetCursorPos(P);
                      SetForegroundWindow(self.Handle);
                      PopupMenu1.Popup(P.X, P.Y);
                    end;
      end;
 SetForegroundWindow(self.Handle);
end;


Наверх

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