Главная страница
    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.041 c
2-1218734987
Dr.Andrew
2008-08-14 21:29
2008.09.28
Как запретить/разрешить ввод от клавиатуры любых символов ?


15-1218114418
Vlad Oshin
2008-08-07 17:06
2008.09.28
Программа вываливается в AV на 666 строке :)


2-1218656904
antonn
2008-08-13 23:48
2008.09.28
вопросик по Tthread


2-1218819253
batya-x
2008-08-15 20:54
2008.09.28
Обои на рабочем столе


15-1218265100
Dmitry S
2008-08-09 10:58
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский