![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Панель задач+ сворачивание окна [D2005, XP]
совсем чайник © (2007-03-05 04:17:00)Очередной вопрос на эту тему, но так я и не нашел способа решить свою задачу:
необходимо 2 варианта:
1.чтобы у приложения ( и его форм) не было иконки в панели задач.
Все, казалось бы, просто...
showwindow(application.Handle,sw_hide);
но как только главную форму сворачиваешь, иконка появляется в панели задач, как с этим бороться ?
пробовал:
....
procedure getminimize(var msg: TWmSysCommand); message WM_SYSCOMMAND;
.....
procedure tfstart.getminimize(var msg: TWmSysCommand);
begin
case (msg.CmdType and $FFF0) of
SC_MINIMIZE: begin
showwindow(application.Handle,sw_hide);
end;
SC_RESTORE : begin
showwindow(application.Handle,sw_hide);
end;
end;
inherited;
end;
результат абсолютно тот же... иконка не исчезает. Исчезает она только при запуске приложения, но сразу же после первого сворачивания появляется, как это исправить ?
совсем чайник (2007-03-05 06:25:00) [1]исправил и это осталось последнее, которе ну никак не могу понять.
Почему при нажатии на кнопку сворачивания окна в заголовке возникает событие wm_syscommand (sc_minimize) ,а при нажатии на иконку в панеле задач ( после чего соответственно приложение сворачивается) не возникает этого события ? как обработать второй случай ?
совсем чайник (2007-03-05 04:31:00) [2]Поправлюсь, моя ошибка была.
Вобщем делаю так:
.....
procedure getminimize(var msg: TWmSysCommand); message WM_SYSCOMMAND;
.....
begin
inherited;
case (msg.CmdType and $FFF0) of
SC_MINIMIZE: begin
showwindow(application.Handle,sw_hide);
end;
SC_RESTORE : begin
showwindow(application.Handle,sw_hide);
end;
end;
end;
Все срабатывает корректно, за одним исключением:
после одного сворачивания, форма больше не "хочет" сворачиваться, т.е. нажатия на кнопку в заголовке окна "свернуть" ни к чему не приводят. Где я ошибся и как это исправить ?
, да, обратно форму показываю по попап меню в трее:
sendmessage(handle,wm_syscommand,sc_restore,0);