Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.042 c
2-1218098970
demon
2008-08-07 12:49
2008.09.28
Как будет грамотнее?


2-1218796398
Нов_и_чок
2008-08-15 14:33
2008.09.28
Ожидание приложением другого приложения


15-1214837486
@!!ex
2008-06-30 18:51
2008.09.28
Невизуальный компонент типа TMemo


2-1219018734
Lamer666
2008-08-18 04:18
2008.09.28
Bз одного ADODataSet в Другой?


8-1181745595
ImageMaker
2007-06-13 18:39
2008.09.28
Уменьшение размеров картинки без потери качества





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский