Не знаю почему, но многие программисты, особенно начинающие, пытаются засунуть иконку в системный лоток System Tray, который расположен рядом с часиками в панели задач. Лично я не очень люблю, когда у меня в окнах возле часов слишком много иконок. Например, сейчас там только индикатор сетевого соединения, регулировка звука и словарь ABBYY Lingvo. Все аккуратно и ничего лишнего.
Эстетическая часть использования каких-то компонентов или дизайнерских изысков выходит за рамки данной книги, но я рекомендую вам без особой надобности не забивать системный лоток лишними картинками.
Если уж иконка в системном лотке вам необходима, то для ее создания можно использовать компонент TSystemTray с вкладки Additional. У этого компонента следующие свойства:
- Animate — если это свойство равно истине, то включена анимация и в системном лотке иконки будут последовательно меняться (как в рисованных мультфильмах), а картинками для анимации будет служить список в свойстве icons.
- Если это свойство равно false, то в лотке будет отображаться статичная картинка в виде иконки из свойства icon;
- Animate interval — задержка в миллисекундах между показами иконок;
- BaiioonFiags — определяет стиль иконки подсказки. Вы можете рядом с иконкой отображать Balloon Hint (всплывающая подсказка) — подсказку, которая, помимо классического Hint-текста, содержит заголовок и иконку. В свойстве можно указать, нужно ли показывать картинку и какой она должна иметь тип. Например, для отображения информационной картинки нужно указать значение bfinfo. Пример подсказки с такой иконкой можно увидеть на рис.;
- BallonHint — текст подсказки Balloon;
- BallonTimeout — время отображения подсказки Balloon;
- BaiionTitie — заголовок подсказки Balloon;
- Hint — классическая подсказка, отображаемая при наведении на компонент;
- icon — иконка, при отображении статической картинки;
- iconindex — индекс иконки, отображаемой в данный момент при анимации;
- icons — массив иконок, для отображения анимации;
- visible — если этот параметр равен истине, то иконка в системном лотке отображается, иначе невидима.
Чтобы отобразить подсказку Balloon, нужно программно выполнить метод showBaiioonHint, который не имеет параметров.
Компонент System Tray появился в Delphi сравнительно недавно, если я не ошибаюсь, то это произошло в Delphi 2005. До этого иконку в системный лоток приходилось помещать с помощью Windows API или использовать компоненты сторонних разработчиков.