Главная страница
    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.45 MB
Время: 0.04 c
5-1116060349
Нулевой
2005-05-14 12:45
2005.12.11
Как из ComboBox сделать DBLookUpComboBox?


14-1132530722
SVASH
2005-11-21 02:52
2005.12.11
USBPRINT.SYS


2-1132859107
Катерина
2005-11-24 22:05
2005.12.11
treeview


14-1132235339
Eugene_T
2005-11-17 16:48
2005.12.11
Установка Delphi 2005 Architect


1-1131837827
HF-Trade
2005-11-13 02:23
2005.12.11
Как эмулировать дабл клик мыши в другое окно не перемещая курсор





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский