• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Добавляем Программу В Tray

Sascha Оффлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,227
Баллы
155
1.png
Что такое tray?

Это данная панель:
2.png
Для чего программе находиться в трее? Всё зависит от задач, возложенных разработчиком на своё детище. Чаще всего это обычное оповещение пользователя о чём-либо, например как это делает uTorrent, при загрузке какого-либо торрента. Так же, что бы программа не висела постоянно окном на рабочем столе, её рентабельней свернуть в tray, и пользователь, при надобности, может вызвать приложение, щёлкнув по нему мышкой.

Для работы с треем в delphi XE+ вресия есть стандартный компонент, который называется "TrayIcon". Вот сегодня с ним и поработаем.

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

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

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

Спасибо за внимание.
 
Вверх Снизу