Содержание материала

Code:

   procedure TForm1.IconMouse(var Msg: TMessage);

   var p: tpoint;

   begin

     GetCursorPos(p); // Запоминаем координаты курсора мыши

     case Msg.LParam of // Проверяем какая кнопка была нажата

       WM_LBUTTONUP, WM_LBUTTONDBLCLK: {Действия, выполняемый по одинарному или двойному щел?ку левой кнопки мыши на зна?ке. В нашем слу?ае это просто активация приложения}

         begin

           Ic(3, Applicattion.Icon); // Удаляем зна?ок из трея

           ShowWindow(Application.Handle, SW_SHOWNORMAL); // Восстанавливаем окно программы

         end;

       WM_RBUTTONUP: {Действия, выполняемый по одинарному щел?ку правой кнопки мыши}

         begin

           SetForegroundWindow(Handle); // Восстанавливаем программу в ка?естве переднего окна

           PopupMenu1.Popup(p.X, p.Y); // Заставляем всплыть тот самый TPopUp о котором я говорил ?уть раньше

           PostMessage(Handle, WM_NULL, 0, 0) // Обнуляем сообщение

         end;

     end;

   end;

  

Для выполнения пунктов всплывающего меню, пишите стандартные обработчики onClick() для его пунктов.

 Данный опус писался только в форме, в IDE не тестировался . Всё работает конечно, но не обессудьте, если будут ошибочки мелкие.

 

Для  работы  с  SystemTray  существует всего одна функция. Вот ее

Си-прототип:

Code:

      WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(

                              DWORD dwMessage,      // message identifier

                              PNOTIFYICONDATA pnid  // pointer to structure);

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить