Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2015, 09:23   #1
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
По умолчанию TTrayIcon - НЕ убирать иконку из трея

уже полчаса туплю, не могу найти, каким образом заставить TrayIcon (XE5) оставлять значок в трее после разворачивания окна

по умолчанию он исчезает из трея, и появляется в нём только после повторного сворачивания



UPD

после того, как положил TrayIcon на форму - всё работает как надо, окромя озвученной проблемы, то есть, форма сворачивается в трей, разворачивается из него..

однако, в примерах Embarcadero нашёл следующий вариант использования

Код:
procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
  { Hide the window and set its state variable to wsMinimized. }
  Hide();
  WindowState := wsMinimized;
 
  { Show the animated tray icon and also a hint balloon. }
  TrayIcon1.Visible := True;
  TrayIcon1.Animate := True;
  TrayIcon1.ShowBalloonHint;
end;
...
procedure TForm1.TrayIcon1DblClick(Sender: TObject);
begin
   { Hide the tray icon and show the window,
  setting its state property to wsNormal. }
  TrayIcon1.Visible := False;
  Show();
  WindowState := wsNormal;
  Application.BringToFront();
end;
http://docwiki.embarcadero.com/CodeE...ayIcon_(Delphi)

Подумалось, для чего же делать Hide, WindowState менять, если ApplicationEvents1Minimize - и спрячет форму, и WindowState наверное ей поменяет??

Оказалось: без этих непонятных телодвижений ShowBallonHint в упор не хочет показывать подсказку.

Сделал так, как в примере - теперь у меня в трее две иконки! Как убрать "штатную" - ума не приложу

закомментировал в OnClick
// TrayIcon1.Visible := False;
Работает! при разворачивании одна иконка остаётся в трее
Но как теперь убрать штатную иконку?

И зачем все эти "костыли" с ручными Hide и изменениями состояния?

Может, где-нибудь есть хорошая документация на TTrayIcon, желательно на русском? или собака порылась не в TTrayIcon, а в самой идеологии работы с окном, сворачивании его, разворачивании, и надо рыть глубже, чтобы понять, как правильно свернуть?

ЗЫ вроде думал мелочь, прикручу сейчас за пять минут прикольный бантик к программе, ан засада какая-то выходит....

Последний раз редактировалось AnTe; 26.04.2015 в 09:46.
AnTe вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как программно сменить иконку в трее компонента TtrayIcon ? zmxncb Компоненты Delphi 3 15.12.2014 03:26
Аналог TJumList, TTaskBar и TTrayIcon в проекте Firemonkey Delphi_ProGer Общие вопросы Delphi 1 15.11.2014 09:58
TTrayIcon в Delphi XE nik-kang Компоненты Delphi 1 17.06.2011 14:37
Как убирать знак ' ? Человек_Борща Работа с сетью в Delphi 3 31.01.2011 13:56
Delphi, TMemo: Как автоматически убирать SrollBar? Господин ПэЖэ Помощь студентам 0 22.10.2010 12:55