Подскажите пожалуйста, как поместить значек программы в терэй виндоуса, и с помощью него выполнять простые действия.(показать программу, свернуть в трей)
В Delphi 7.
Иконка в трей
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 230
- Зарегистрирован: 31 авг 2006, 13:11
А можно дать рабочий пример, и если можно на описание русском.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
А чем не устраивает рабочий пример, на который сослался namomelkor?
Если смущает использование чужих компонентов можно обойтись просто функцией
Shell_NotifyIcon. Она одна все делает: добавляет, изменяет, удаляет.
При создании иконки системе сообщается Handle окна, которое будет получать события, например, клики на иконке.
Следовательно нужны всего 2 вещи:
1)
Определить идентификатор события const MYWM_NOTIFYICON = WM_USER+1;
Вызвать при запуске и перед завершением работы функцию Shell_NotifyIcon.
2) в нужной форме переопределить метод WndProc
как
Примеры на C++ есть в справке по Wn32 API.
Если смущает использование чужих компонентов можно обойтись просто функцией
Shell_NotifyIcon. Она одна все делает: добавляет, изменяет, удаляет.
При создании иконки системе сообщается Handle окна, которое будет получать события, например, клики на иконке.
Следовательно нужны всего 2 вещи:
1)
Определить идентификатор события const MYWM_NOTIFYICON = WM_USER+1;
Вызвать при запуске и перед завершением работы функцию Shell_NotifyIcon.
2) в нужной форме переопределить метод WndProc
Код: Выделить всё
protected
procedure WndProc(var Message: TMessage); override;
Код: Выделить всё
procedure TForm1.WndProc(var Message: TMessage);
begin
case Message.Msg of
MYWM_NOTIFYICON: begin
case Message.LParam of
WM_LBUTTONDOWN : begin
//
end;
WM_LBUTTONUP : begin
//
end;
// другие события мыши
end;
end;
else inherited;
end;
end;