- Регистрация
- 9 Май 2015
- Сообщения
- 1,227
- Баллы
- 155

Что такое tray?
Это данная панель:

Для чего программе находиться в трее? Всё зависит от задач, возложенных разработчиком на своё детище. Чаще всего это обычное оповещение пользователя о чём-либо, например как это делает uTorrent, при загрузке какого-либо торрента. Так же, что бы программа не висела постоянно окном на рабочем столе, её рентабельней свернуть в tray, и пользователь, при надобности, может вызвать приложение, щёлкнув по нему мышкой.
Для работы с треем в delphi XE+ вресия есть стандартный компонент, который называется "TrayIcon". Вот сегодня с ним и поработаем.
Создаём приложение, кидаем компонент TrayIcon и компонент Button. Форма:

Несложно догадаться, что по нажатию на кнопку "Свернуть", приложение улетит в tray. Для этого, в обработчике события onclick пишем следующий код:
Код:
form1.TrayIcon1.Icon.LoadFromFile('C:\Users\pwcode\Desktop\tray\Icon.ico'); // загружаем иконку 16x16
form1.TrayIcon1.Visible:= true; //Отображаем её в трее
Form1.Hide; //сворачиваем основную форму программы
Код:
Form1.Show; //Вызываем основную форму
form1.TrayIcon1.Visible:= false; //Скрываем иконку в трее

Нажали на иконку, появилась форма, а сама иконка скрылась. Отлично.
Теперь рассмотрим то, для чего, собственно говоря, и кидают чаще всего программу в tray - оповещения. Кинем на форму кнопку "Вызвать оповещение", создадим обработчик события onclick на ней, и там напишем:
Код:
form1.TrayIcon1.BalloonTitle:= 'Заголовок оповещения';
form1.TrayIcon1.BalloonHint:= 'Текст оповещения';
form1.TrayIcon1.ShowBalloonHint; //Вызов оповещения с вышезаданными параметрами
Проверка:

Всё работает, отлично! Если вам нужно, что бы иконка, по нажатию, выдавала меню - то у TrayIcon есть свойство "PopupMenu", где можно указать одноимённый компонент, а у него уже задать меню.
Спасибо за внимание.