www.alp.ru/itsm/postroenie_it_infrastrukturyi

Ответ на первый вопрос очевиден. Если минимизировать не только окно ШВНОЙ формы приложения (Application.MainForm.Handle), НО И ОКНО приложения (Application.Handle), то приложение полностью исчезнет "с экранов радаров". В этот самый момент нужно создать значок на панели System Tray. В его всплывающем меню должен быть пункт, при выборе которого оба окна восстанавливаются, а значок удаляется.

Чтобы приложение запустилось сразу в минимизированном виде и без главной формы, следует к вышесказанному добавить установку свойства Appiication.showMainForm в значение False. Здесь возникает одна сложность - если главная форма создавалась в невидимом состоянии, ее компоненты будут также созданы невидимыми. Поэтому при первом ее показе установим их свойство visible в значение True. Чтобы не повторять это дважды, установим флаг - глобальную переменную ShownOnce:

procedure TForml .HideMarnForm;
begin
Application.showMainForm := False;
ShowWindow(Application.Handle, SW__HIDE) ;
ShowWindow(Application.MainForm.Handle, SW_HIDE);
end;
procedure TForml.RestoreMainForm;
var i,j : Integer;
begin
Application. showMainForm := True;

ShowWindow(Application.Handle, SW_RESTORE); ShowWindow(Application.MainForm.Handle, SW_RESTORE); if not ShownOnce then begin for I := 0 to Application.MainForm.ComponentCount -1 do if Application.MainForm.Components[I] is TWinControl then with Application.MainForm.Components[I] as TWinControl do if Visible then begin ShowWindow (Handle, SW_SHOWDEFAULT) ; for J := 0 to ComponentCount -1 do if Components[J] is TWinControl then

ShowWindow((Components[J] as TWinControl).Handle,

SW__SHOWDEFAULT) ;
end;
ShownOnce := True;
end;
end;
procedure TForml.WMSYSCOMMAND(var msg: TMessage);
begin inherited;
if (Msg.wParam=SC_MINIMIZE) then begin
HideMainForm;
CreateTraylcon(1);
end;
end;
procedure TForml.FileOpenltemlClick(Sender: TObject);
begin
RestoreMainForm;
DeleteTraylcon(l);
end;

Теперь у вас в руках полноценный набор средств для работы с панелью System Tray. В заключение необходимо добавить, что все описанное реализуется не в операционной системе, а в оболочке ОС - Проводнике (Explorer). В принципе, и Windows NT 4/2000, и Windows 95/98 допускают замену оболочки ОС на другие, например DashBoard или LightStep. Там функции панели System Tray могут быть не реализованы или реализованы через другие API. Впрочем, случаи замены оболочки достаточно редки.

Интерфейс/СлеШл/с

Этот интерфейс представляет собой средство для создания и управления ярлыками (srcrtxxits). Все читатели этой главы наверняка создавали и перемещали ярлыки для наиболее нужных программ, файлов и папок - на рабочем столе, в главном меню и т. д. С точки зрения ОС эти действия - не что иное, как создание и изменение свойств СОМ-объекта.

Каждый ярлык содержит следующую информацию:

□ путь к объекту, на который ссыпается ярлык (Path) ;
□ рабочий каталог для этого объекта (Vforking Directory) ;
□ список параметров, передаваемый объекту при его активизации (Arguments);

⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Ноябрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс