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

Вниз

Некорректная работа ShowWindow   Найти похожие ветки 

 
BFG9k ©   (2005-11-23 13:54) [0]

Работаю с треем. При сворачивании главной формы делаю следующее :

  ShowWindow(Application.Handle,SW_HIDE);
  ShowWindow(Application.MainForm.Handle,SW_HIDE);


При двойном клике на значке трея :


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


Появляются окна, которые перед этим закрывались, их свойство Visible=false. Причем на действия пользователя они не реагируют. В чем дело ?


 
ShiFT   (2005-11-23 14:00) [1]


>   ShowWindow(Application.MainForm.Handle,SW_RESTORE);
>   ShowWindow(Application.Handle,SW_RESTORE);

попробуй SW_NORMAL


 
han_malign ©   (2005-11-23 14:06) [2]

SW_SHOW


 
Попов Виталий   (2005-11-23 14:10) [3]

Вот пример, все работает. Форма одна.

Сворачивание:
Application.ShowMainForm := False;
ShowWindow(Application.Handle, SW_HIDE);
ShowWindow(Application.MainForm.Handle, SW_HIDE);

Отображение:
Application.ShowMainForm:=True;
ShowWindow(Application.Handle, SW_SHOW);
ShowWindow(Application.MainForm.Handle, SW_SHOW);
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;


 
BFG9k ©   (2005-11-23 14:40) [4]

2 Попов Виталий:

Почему только 2 уровня вложенности компонентов ? ;-) С одной формой все заработает ...


 
Попов Виталий   (2005-11-23 15:01) [5]

to BFG9k
Это фрагмент реальной программы в качестве примера, дальше я думаю можно доработать.


 
BFG9k ©   (2005-11-23 15:42) [6]

Такой строки вообще не должно быть - она бессмысленна (и так все работает)
   Application.ShowMainForm := False/True;

Вообще нужно быть осторожным с ShowWindow и вызывать только для Application , для всех форм же пользовать Show и Hide для корректной работы со свойством Visible.



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

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

Наверх




Память: 0.47 MB
Время: 0.067 c
2-1133104703
alishev
2005-11-27 18:18
2005.12.11
Заголовок окна


1-1131711566
olhovik
2005-11-11 15:19
2005.12.11
Проблема в ListBoxе


2-1132595929
апропо
2005-11-21 20:58
2005.12.11
Функции RightStr, LeftStr


14-1132697502
NightLord
2005-11-23 01:11
2005.12.11
Новая дыра в IE


4-1128649481
Wood
2005-10-07 05:44
2005.12.11
Расширенный MessageBox