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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2009, 20:22   #1
Vol666
Гуру Разврата
Форумчанин
 
Аватар для Vol666
 
Регистрация: 29.07.2009
Сообщений: 373
Смущение Ступор в repeat ... until

Вообщем я имею н-ое кол-во окон с одинаковым классом, мне их нужно спрятать, первая часть условия мне понятна repeat, а вот что делать с until? подскажите, до какого условия повторять цикл.
P.S. только что пришло посчитать кол-во окон и выполнять цикл пока они не закончатся, но собственно как их посчитать ведь их может быть 100!
Фредди вернулся))) И Готов Убивать!!!
Vol666 вне форума Ответить с цитированием
Старый 31.10.2009, 20:35   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Покажите, что вы хотите делать в цикле.
Как вы ищете окна?
Где код-то?
mihali4 вне форума Ответить с цитированием
Старый 31.10.2009, 20:47   #3
Vol666
Гуру Разврата
Форумчанин
 
Аватар для Vol666
 
Регистрация: 29.07.2009
Сообщений: 373
По умолчанию

repeat
h:=FindWindow('xxx',nil);
ShowWindow(h,SW_HIDE);
until
// и не знаю до каких пор повторять цикл... чтобы например 20 окон одинакового класса исчезли...
Фредди вернулся))) И Готов Убивать!!!
Vol666 вне форума Ответить с цитированием
Старый 31.10.2009, 20:58   #4
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

FindWindow('xxx',nil); - вот это наверное должно чтото вернуть 0 (или что там в хелпе) при "не найдено ни одного окна" или чтото такое....
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 31.10.2009, 20:58   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

20 окон?
одно и тоже?
надо EnumWindows(или FindWindowEx) в данном случае...а то 20 раз одно окно найдешь..
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2009, 20:58   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Слава богу! Партизан раскололся!
Until h<=0...
И обратите внимание на совет Пепел Феникса.

Последний раз редактировалось mihali4; 31.10.2009 в 21:01.
mihali4 вне форума Ответить с цитированием
Старый 31.10.2009, 21:01   #7
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

А вам не кажется что логичнее применить цикл While?

Ведь сначала поищем, а потом, если нашли, делае ShowWindow(h,SW_HIDE);....
Зачем делать ShowWindow(h,SW_HIDE); если мы ничего не нашли....
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 31.10.2009, 21:02   #8
Vol666
Гуру Разврата
Форумчанин
 
Аватар для Vol666
 
Регистрация: 29.07.2009
Сообщений: 373
По умолчанию

у окон только классы одинаковые, а вот названия варьируются до бесконечности...
Значит пока меньше либо равно нулю, но что это даст поясните...
Фредди вернулся))) И Готов Убивать!!!
Vol666 вне форума Ответить с цитированием
Старый 31.10.2009, 21:05   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Значит пока меньше либо равно нулю, но что это даст поясните...
пока находим какое либо окно то делаем.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2009, 21:06   #10
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

или так...
Код:
 wnd:= GetWindow(Handle, gw_HWndFirst);
 while wnd <> 0 do begin
  //бла-бла проверка
  wnd:= GetWindow(wnd, gw_hWndNext)
 end
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
While and Repeat! Linker88 Паскаль, Turbo Pascal, PascalABC.NET 12 19.05.2009 13:43
repeat ... until 08ekhiv1 Помощь студентам 3 17.03.2009 16:42
Repeat Наталья111 Общие вопросы Delphi 7 06.01.2009 19:44
Ступор с компилятором Алукард Интеграл Общие вопросы C/C++ 1 11.11.2008 17:33