Форум: "WinAPI";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
ВнизTaskBar + System Tray в Delphi Найти похожие ветки
← →
Sj © (2004-07-03 13:19) [0]Здраствуйте!У меня есть такой вопрос: как сделать на Делфи TaskBar и Трей?Каким образом отображать иконки которые находятся в трее, и что-бы при нажатии кнопок миши эти иконки вызывали соответствующии менюшки (POPUP)...За ответ буду очень благодарен. :)
← →
K.o.Z (2004-07-03 14:23) [1]Не понял. Зачем тебе рисовать TaskBar и Tray??
Ты у себя в приложении режил сделать аля-windows??
Так не надо!! Один уже сделал... ;)
← →
DVM © (2004-07-03 23:45) [2]
> У меня есть такой вопрос: как сделать на Делфи TaskBar и
> Трей
Руками. Между прочим данные 2 термина это одно и то же.
Есть область уведомлений и список задач.
> Каким образом отображать иконки которые находятся в трее
Ну способов куча - хошь рисуй сам, хошь делай как Microsoft из ToolBar, еще из TabControl можно - дело вкуса.
> и что-бы при нажатии кнопок миши эти иконки вызывали соответствующии
> менюшки (POPUP)...
Вопрос настолько объемный, что даже не знаю с какой стороны начать рассказывать, чтобы покороче.
Начни отсюда, что-ли:
http://www.delphikingdom.ru/asp/viewitem.asp?UrlItem=/treasury/systray.htm
> Ты у себя в приложении режил сделать аля-windows??
Скорее а-ля Explorer
← →
Sijey © (2004-07-04 12:06) [3]Я не спрашивал какими компонентамы рисовать!!Я спрашивал как витянуть иконки запущеных програм!Наверное через хендлы но как их найти...?Что ли через FindWindow?:(
← →
Sur (2004-07-04 12:29) [4]Пример:
............
uses
ShellAPI;
var
NID: TNotifyIconData;
............
{Добавление}
procedure TForm1.bAddClick(Sender: TObject);
begin
{Установка необходимых значений в поля структуры TNotifyIconData}
WITH NID DO BEGIN
uFlags := NIF_ICON OR NIF_TIP OR NIF_MESSAGE;
cbSize := SizeOf(NID);
uID := 123;
Wnd := Handle;
szTip := "Пример подсказки"+#0;
hIcon := Application.Icon.Handle;
uCallBackMessage := WM_USER+10;
END;
{Добавление иконки в панель задач}
IF Shell_NotifyIcon(NIM_ADD,@NID) THEN MessageBeep(0);
end;
............
{Изменение}
procedure TForm1.bModifyClick(Sender: TObject);
begin
{Установка новых значений в поля структуры TNotifyIconData}
WITH NID DO BEGIN
szTip := "Пример подсказки 1"+#0;
hIcon := LoadIcon(0,IDI_ASTERISK);
END;
{Изменение иконки в панели задач}
IF Shell_NotifyIcon(NIM_MODIFY,@NID) THEN MessageBeep(0);
end;
............
{Удаление иконки из панели задач}
procedure TForm1.bDeleteClick(Sender: TObject);
begin
IF Shell_NotifyIcon(NIM_DELETE,@NID) THEN MessageBeep(0);
end;
............
{Процедура реакции на события передаваемые иконкой}
procedure TForm1.WndProc(var M: TMessage);
var CursorPos: TPoint;
begin
{Проверка на принадлежность сообщения иконке}
IF M.Msg = WM_USER+10 THEN
{Реакция на необходимые события}
CASE M.LParam OF
WM_RBUTTONUP :
BEGIN
GetCursorPos(CursorPos);
PopupMenu1.Popup(CursorPos.X, CursorPos.Y);
END;
WM_LBUTTONDBLCLK :
ShowMessage("Двойной щелчок мыши!");
END;
{Передача необработанных сообщений дальше}
INHERITED WndProc(M);
end;
← →
Sasha73 © (2004-07-19 16:27) [5]Удалено модератором
Примечание: Заддай свой вопрос в отдельной ветке
← →
DeadMeat © (2004-07-19 20:12) [6]
> [4] Sur (04.07.04 12:29)
Если я правильно понял автора, то это не совсем то... Точнее даже совсем не то...
---
...Death Is Only The Begining...
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.03 c