Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2010, 18:58   #1
tbeca@mail.ru
 
Регистрация: 02.09.2009
Сообщений: 3
По умолчанию Сворачивание всех окон кроме моего.

Есть такой код
Код:
procedure TForm1.Button1Click(Sender: TObject);
var WH:HWnd;
begin
  WH:=Handle;
  repeat
  WH:=GetNextWindow(WH,GW_HWNDNEXT);
  if (WH<>form1.Handle) and (GetParent(WH)=0)and(not IsIconic(WH))and(IsWindowVisible(WH)) then
  PostMessage(WH,WM_SYSCOMMAND,SC_MINIMIZE,0);
  until WH=0;
end;
оно должен сворачивать все окна кроме моего, но оно сворачивает и мое окно. Как сделать так что бы осталасть только мое окно. Можно было после сворачивания обратно развернуть свое окно но это для меня не подходит

и такой код тоже сворачивает все окна включая моего

Код:
function enumminiproc (wd: hwnd;
param: longint): boolean;
stdcall;
// Обязательно stdcall !!!
begin
if wd<>form1.handle then // если это не наша программа
if iswindowvisible(wd) then // если окно видимо
if not isiconic(wd) then // если окно не свернуто
if iswindow(wd) then // и вообще это - окно.
showwindow(wd, sw_minimize);
// свернем его.
enumminiproc := true;
// продолжаем перебирать все окна системы.
end;

procedure tform1.button1click(sender: : tobject);
// допустим, закрываем по нажатию на клавишу
begin
enumwindows (@enumminiproc, 0);
// отрабатываем сворачивание окон.
end;
помогите народ

У нас принято оформлять код специальным тэгом - при помощи кнопочки "#".
Только...
И не значком #.
И не РНР-кодом.
И не значком цитаты.
И не собственными "ручками".
Вы не знали? Почитайте правила раздела...
Модератор
Пока, как новичку, прощаю...

Последний раз редактировалось mihali4; 17.01.2010 в 19:12.
tbeca@mail.ru вне форума Ответить с цитированием
Старый 17.01.2010, 19:03   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)добавьте проверку для всех форм
2)также на Application.handle
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.01.2010, 19:17   #3
tbeca@mail.ru
 
Регистрация: 02.09.2009
Сообщений: 3
По умолчанию

На счет кнопочки "#". простите забыл.
Пепел Феникса
1)добавьте проверку для всех форм
2)также на Application.handle
можете описать подробно, например в использование моем коде при нажатие кнопки, и потом у меня только одна форма

19:29

ОК разобрался выглядить так
Код:
procedure TForm1.Button1Click(Sender: TObject);
var WH:HWnd;
begin
  WH:=Handle;
  repeat
  WH:=GetNextWindow(WH,GW_HWNDNEXT);
  if (WH<>Application.handle) and (GetParent(WH)=0)and(not IsIconic(WH))and(IsWindowVisible(WH)) then
  PostMessage(WH,WM_SYSCOMMAND,SC_MINIMIZE,0);
  until WH=0;
end;
У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
И еще. После того, как вы набрали более 10 постов - я зверею... И начинаю лепить штрафы. Подробненько - опять-таки в правилах раздела.
Модератор

Последний раз редактировалось mihali4; 17.01.2010 в 19:45.
tbeca@mail.ru вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поверх всех окон Temka Общие вопросы Delphi 4 31.05.2009 14:09
Сворачивание окон zzzzz Общие вопросы Delphi 4 20.10.2008 09:16
Сворачивание окон Blackmore Общие вопросы Delphi 1 19.05.2008 18:27
Поверх всех окон Патрон Общие вопросы Delphi 1 18.04.2008 16:57
Сворачивание окон Legat Win Api 2 08.10.2007 16:36