Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.28;
Скачать: CL | DM;

Вниз

Минимизация окна...   Найти похожие ветки 

 
atomAltera ©   (2008-08-14 18:55) [0]

Привет Вем!
Короче, такая ситуация:
Многооконное приложение. Иконка в таск баре отображаться не должна. Имееться обработчик сообщения onClick у иконки в трее. Главная форма может быть как fsNormal, так и fsStayOnTop. Надо, что бы при событии trayIcon.OnClick, если приложения етображаеться, то спрятать его, в противном случае показать. Сложность в слёдующем: если ваполняю "Свернуть все окна" (Win+D), то если главная форма отображаеться и она не fsStayOnTop, то она изчезает вместе с остальными, но потом пояеляеться только после нескольких кликов к трее. После чего, если теряет фокус, тут-же снова изчезает.

Я сделал так:
procedure{ application.onMinimize }TEXE_FORM1.min(dender: tObject);
begin
  Application.ShowMainForm := false;
  ShowWindow(Application.Handle, SW_HIDE);
  ShowWindow(Application.MainForm.Handle, SW_HIDE);
  fv := false;
end;

procedure{ щелчёк в трее }TEXE_FORM1.TrayIcon1Click(Sender: TObject);
begin
  if fv then
  begin
     Application.ShowMainForm := false;
     ShowWindow(Application.Handle, SW_HIDE);
     ShowWindow(Application.MainForm.Handle, SW_HIDE);
     fv := false;
  end
  else
  begin
     Application.ShowMainForm := true;
     //ShowWindow(Application.Handle, SW_RESTORE);
     ShowWindow(Application.MainForm.Handle, SW_NORMAL);
     SetForegroundWindow(Application.MainForm.Handle);
     fv := true;
  end;
end;

procedure{ Сообщение: Активация формы }TEXE_FORM1.wmActivate(var msg: tWMActivate);
begin
  ShowWindow(Application.Handle, SW_HIDE)
end;


Помогите пожалуйста.


 
Сергей М. ©   (2008-08-14 22:18) [1]


> Application.ShowMainForm := false;


> Application.ShowMainForm := true;


Ты вообще-то понимаешь, что ты говоришь этими строчками ?


 
atomAltera ©   (2008-08-15 07:31) [2]

Нет.
Я этот код нашёл в справочнике...


 
Loginov Dmitry ©   (2008-08-15 07:59) [3]

>     //ShowWindow(Application.Handle, SW_RESTORE);
>     ShowWindow(Application.MainForm.Handle, SW_NORMAL);
>
>     SetForegroundWindow(Application.MainForm.Handle);


Видимость формы ты восстановил, но почему не восстанавливаешь видимость Application, или у тебя Delphi2007, где по умолчанию значек в таскбаре относится к главной форме, а не к Application?


> Я этот код нашёл в справочнике...


мдя...



Страницы: 1 вся ветка

Текущий архив: 2008.09.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
2-1219122526
kate158
2008-08-19 09:08
2008.09.28
сдвиг данных в dbgrid e на 1 вверх


15-1217852962
Fynjy
2008-08-04 16:29
2008.09.28
ehlib4


15-1218148932
alex-drob
2008-08-08 02:42
2008.09.28
microsoft или apple


15-1217933277
Rouse_
2008-08-05 14:47
2008.09.28
От как нужно отмывать деньги на разработках :)


15-1217942065
DelphiN!
2008-08-05 17:14
2008.09.28
На рабочем столе не отображаются ярлыки