Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
13 / 13 / 6
Регистрация: 16.02.2015
Сообщений: 140
1

Как в Delphi работать к компонентом TrayIcon

22.02.2015, 11:57. Показов 2104. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите код, который сворачивает программу в трей, при работе с компонентом TrayIcon.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2015, 11:57
Ответы с готовыми решениями:

Подскажите как работать с компонентом TChart
всем доброго утра/дня/вечера/ночи. Уважаемые форумчане, подскажите пожалуйста как работать с...

Как работать с компонентом EhLib TPreviewBox?
Ребята, есть у кого-нибудь опыт работы с компонентом PreviewBox. Никак не могу разобраться....

Как правильно начать работать с альфа контролс компонентом?
Как правильно начать с ним работать, с самого начал устанавил компоненты эти, и начал для примера...

Как пользоваться компонентом RichView, чтобы работать с кликабельными ссылками
Как пользоваться компонентом RichView? У меня выводятся только ссылки и их нужно сделать...

4
28 / 28 / 19
Регистрация: 03.02.2012
Сообщений: 59
22.02.2015, 12:53 2
В программах для Window 95 и выше часто используется TrayIcon – иконка справа на TaskBar, которая позволяет программе почти не занимать места на экране и при этом быть всегда доступной. Для работы с TrayIcon используется функция Shell_NotifyIcon, в которую передается команда: NIM_ADD, NIM_MODIFY или NIM_DELETE для создания изменения и удаления соответственно, и структура TNotifyIconData. У каждой TrayIcon в вашем приложении должен быть свой uID.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
const
  WM_NOTIFYTRAYICON = WM_USER + 1;
...
private
  procedure WMTRAYICONNOTIFY(var Msg: TMessage); message WM_NOTIFYTRAYICON;
...
uses
  ShellAPI;
 
procedure TForm1.WMTRAYICONNOTIFY(var Msg: TMessage);
var
  s: string;
begin
  case Msg.LParam of
    WM_MOUSEMOVE:     s := 'Мышь сдвинута';
    WM_LBUTTONDOWN:   s := 'Левая кнопка нажата';
    WM_LBUTTONUP:     s := 'Левая кнопка отпущена';
    WM_LBUTTONDBLCLK: s := 'Два раза нажата левая кнопка';
    WM_RBUTTONDOWN:   s := 'Правая кнопка нажата';
    WM_RBUTTONUP:     s := 'Правая кнопка отпущена';
    WM_RBUTTONDBLCLK: s := 'Два раза нажата правая кнопка';
    else              s := IntToStr(Msg.LParam);
  end;
  ListBox1.Items.Add(s);
  ListBox1.ItemIndex := ListBox1.Items.Count - 1;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var
  tray: TNotifyIconData;
  Ic: TIcon;
begin
  Ic := TIcon.Create;
  Ic.LoadFromFile('Icon1.ico');
  with tray do
  begin
    cbSize := SizeOf(TNotifyIconData);
    Wnd := Form1.Handle;
    uID := 1;
    uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
    uCallBackMessage := WM_NOTIFYTRAYICON;
    hIcon := Ic.Handle;
    szTip := ('Это наша иконка');
  end;
  Shell_NotifyIcon(NIM_ADD, Addr(tray));
  Ic.Destroy;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  tray: TNotifyIconData;
  Ic: TIcon;
begin
  Ic := TIcon.Create;
  Ic.LoadFromFile('Icon2.ico');
  with tray do
  begin
    cbSize := SizeOf(TNotifyIconData);
    Wnd := Form1.Handle;
    uID := 1;
    uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
    uCallBackMessage := WM_NOTIFYTRAYICON;
    hIcon := Ic.Handle;
    szTip := ('Это другая иконка');
  end;
  Shell_NotifyIcon(NIM_MODIFY, Addr(tray));
  Ic.Destroy;
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
var
  tray: TNotifyIconData;
begin
  with tray do
  begin
    cbSize := SizeOf(TNotifyIconData);
    Wnd := Form1.Handle;
    uID := 1;
  end;
  Shell_NotifyIcon(NIM_DELETE, Addr(tray));
end;
0
13 / 13 / 6
Регистрация: 16.02.2015
Сообщений: 140
22.02.2015, 13:17  [ТС] 3
Я хотел узнать, как это делать с помощью компонента, а не с помощью ShellAPI
0
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
22.02.2015, 13:53 4
Лучший ответ Сообщение было отмечено NEFFboy как решение

Решение

Цитата Сообщение от NEFFboy Посмотреть сообщение
Я хотел узнать, как это делать с помощью компонента
А в справку заглянуть не барское дело?
TTrayIcon (Delphi)
1
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
22.02.2015, 22:56 5
Delphi
1
2
3
  //ñâåðíóòü â òðåé
  TrayIcon1.Visible := True;
  Application.MainForm.Hide;
1
22.02.2015, 22:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2015, 22:56
Помогаю со студенческими работами здесь

Delphi 10.3 TrayIcon
Не удается установить компонент TrayIcon, все версии выдают ошибки. Есть какая то возможно сделать...

Компонент TrayIcon на Delphi 2010
Привет. Можете дать, пожалуйста, компонент CoolTrayIcon для Delphi 2010 и обьясните как установить?

TrayIcon в RAD Studio Delphi 2010
всем привет! Подскажите как использовать встроиный TrayIcon1 в Delphi 2010 (TrayIcon1 появился...

Анимация иконки в TrayIcon (Delphi XE4)
Всем привет! Помогите пожалуйста решить вопрос. Допустим у меня есть на форме стандартный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru