Советы по Delphi

         

Немедленный TrayIcon после старта приложения


Нужно чтобы при запуске приложения сразу исчезала с экрана главная форма и появлялась TrayIcon. В Ваших "Советы по Дельфи" на данный вопрос я нашел два решения (раздел Классы/TForm) к сожалению ни одно решения на моем компьютере не работало :-(. В связи с этим было решено продолжить поиск, и решение было найдено:

На Главную форму приложения помещаем компонент (TEdit или другой любой, который может иметь фокус), затем устанавливаем свойства:

    Visible:=True;
TabOrder:=0;

В обработчик события OnEnter записываем (этот код взял из "Советов по Дельфи"):

   

Application.Minimize;
ShowWindow(Application.Handle, SW_HIDE);
Button1.SetFocus;                                     //Устанавливаем фокус на другой компонент формы (у меня был Button1 )
Edit1.Visible:=False;                                 //Делаем добавочный компонент невидимым - т.к. он больше нам не нужен

Механизм работы:
При запуске приложения создается форма и фокус получает компонент со свойством TabOrder:=0, при получении фокуса вызывается процедура OnEnter для нашего компонента и происходит скрытие формы.

Для восстановления формы необходим код:

    ShowWindow(Application.Handle, SW_RESTORE);
Application.Restore;

Для реализации TrayIcon был использован компонент TRxTrayIcon из библиотеки RxLib ver.2.75 Данное решение имеет один недостаток - незначительное мерцание формы при ее сворачивании.

-----------------------------------------------------------------
С уважением Пащенко Андрей Владимирович (Bibigon)
г.Архангельск, 2000. [001420]



Содержание раздела