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

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

TaskBar + System Tray в Delphi [D1, D2, D3, D4, D5, D6, Win95/98]


Sj ©   (2004-07-03 13:19:00) 

Здраствуйте!У меня есть такой вопрос: как сделать на Делфи TaskBar и Трей?Каким образом отображать иконки которые находятся в трее, и что-бы при нажатии кнопок миши эти иконки вызывали соответствующии менюшки (POPUP)...За ответ буду очень благодарен. :)


DeadMeat   (2004-07-19 20:12:00) [1]


> [4] Sur   (04.07.04 12:29)

Если я правильно понял автора, то это не совсем то... Точнее даже совсем не то...

---
...Death Is Only The Begining...


Sasha73   (2004-07-19 16:27:00) [2]

Удалено модератором
Примечание: Заддай свой вопрос в отдельной ветке


Sur   (2004-07-04 12:29:00) [3]

Пример:

............

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;


Sijey   (2004-07-04 12:06:00) [4]

Я не спрашивал какими компонентамы рисовать!!Я спрашивал как витянуть иконки запущеных програм!Наверное через хендлы но как их найти...?Что ли через FindWindow?:(


DVM   (2004-07-03 23:45:00) [5]


> У меня есть такой вопрос: как сделать на Делфи TaskBar и
> Трей

Руками. Между прочим данные 2 термина это одно и то же.
Есть область уведомлений и список задач.

> Каким образом отображать иконки которые находятся в трее

Ну способов куча - хошь рисуй сам, хошь делай как Microsoft из ToolBar, еще из TabControl можно - дело вкуса.

> и что-бы при нажатии кнопок миши эти иконки вызывали соответствующии
> менюшки (POPUP)...

Вопрос настолько объемный, что даже не знаю с какой стороны начать рассказывать, чтобы покороче.
Начни отсюда, что-ли:
http://www.delphikingdom.ru/asp/viewitem.asp?UrlItem=/treasury/systray.htm


> Ты у себя в приложении режил сделать аля-windows??

Скорее а-ля Explorer


K.o.Z   (2004-07-03 14:23:00) [6]

Не понял. Зачем тебе рисовать TaskBar и Tray??
Ты у себя в приложении режил сделать аля-windows??
Так не надо!! Одинуже сделал... ;)


Наверх

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