Главная страница
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.021 c
3-1206443287
denis24
2008-03-25 14:08
2008.09.28
Прямой доступ к ораклу без одбс


15-1217561254
Мазут_Береговой
2008-08-01 07:27
2008.09.28
Zeitgeist /Я не знаю появлялась ли такая тема здесь/


2-1218603223
Кирей
2008-08-13 08:53
2008.09.28
Коментарии в тексте запроса


2-1218700387
sD
2008-08-14 11:53
2008.09.28
Как в классе динамически создать компонент?


15-1218163234
Slider007
2008-08-08 06:40
2008.09.28
С днем рождения ! 8 августа 2008 пятница