Нужно чтобы при запуске приложения сразу исчезала с экрана главная форма и появлялась 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]