PDA

Просмотр полной версии : [Статья] Учимся работать с компонентом Ttrayicon в Delphi 2010


Роспотребнадзор
16.10.2012, 18:31
Сразу приступим к написанию кода:

Кидаем на форму button,
компонент ttrayicon, [Ссылки могут видеть только зарегистрированные и активированные пользователи]
компонент ApplicationEvents [Ссылки могут видеть только зарегистрированные и активированные пользователи]


Для начала нам нужно свернуть программу в трей, и разворачивать ее отттуда.
В компоненте applicationevents выбираем событие onminimize [Ссылки могут видеть только зарегистрированные и активированные пользователи] и пишем следующий код:

procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
TrayIcon1.visible:=true;
//Убираем с панели задач
ShowWindow(Handle,SW_HIDE); // Скрываем программу
ShowWindow(Application.Handle,SW_HIDE); // Скрываем кнопку с TaskBar'а
SetWindowLong(Application.Handle, GWL_EXSTYLE,
GetWindowLong(Application.Handle, GWL_EXSTYLE) or (not WS_EX_APPWINDOW));
end;
Результат выполнения этого куска кода: при минимизации формы, в трее появится значок программы, и форма исчезнет.



Чтобы вернуть форму на экран, напишем следующий код:
procedure TForm1.TrayIcon1DblClick(Sender: TObject);
begin
TrayIcon1.ShowBalloonHint;
ShowWindow(Handle,SW_RESTORE);
SetForegroundWindow(Handle);
TrayIcon1.Visible:=False;
end;
Результат выполнения этого куска кода: по двойному клику по иконке в трее, форма вернется на экран, а значок исчезнет из трея.


Теперь научим программу посылать нам уведомления. Рассмотрим на примере кнопки:
procedure TForm1.Button2Click(Sender: TObject);
begin
TrayIcon1.visible:=true; // делаем значок в трее видимым
trayicon1.balloontitle:=('Текст 1');
trayicon1.balloonhint:=('Текст 2');
trayicon1.showballoonHint;// показываем наше уведомление
end;

Что у нас примерно получится:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Исходник программы ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

Статья писалась РОСПОТРЕБНАДЗОР'ом специально для zhyk.ru
При копировании указывать ссылку на эту тему.
Спасибо за внимание.

=PaLeTiZaToR=
26.10.2012, 20:23
Спасибо , то что нужно. Не знал как вопрос по этому поводу в гугле сформулировать )

KlimVoroshilov
12.11.2012, 20:56
Самое полезное про сообщение! Кстати, можно ли как то в уведомление вставить картинку? (иконку уведомления, там типо жёлтый треугольник с восклицательным знаком)

Logast
13.11.2012, 11:14
Интересно, если это совместить с авто загрузкой то вобще будет шикарно)

Роспотребнадзор
13.11.2012, 11:33
Самое полезное про сообщение! Кстати, можно ли как то в уведомление вставить картинку? (иконку уведомления, там типо жёлтый треугольник с восклицательным знаком)

В компоненте выбирается тип уведомления. И от выбранного типа зависит какая картинка в нем будет

Роспотребнадзор
31.12.2012, 17:26
Компонент ttrayicon доступен с какой версии delphi? В 7 я его не видел.
Он доступен начиная с Delphi 2010 и по Delphi XE3 включительно