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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2013, 05:52   #1
angelap
Пользователь
 
Регистрация: 10.05.2013
Сообщений: 40
По умолчанию цикл в делфи

как написать в цикле while, пока файл существует то ничего не делать
angelap вне форума Ответить с цитированием
Старый 27.06.2013, 05:53   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
while FileExists('путь') do
begin
end;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 27.06.2013, 06:11   #3
angelap
Пользователь
 
Регистрация: 10.05.2013
Сообщений: 40
По умолчанию

ой спасибо, все работает)))
angelap вне форума Ответить с цитированием
Старый 27.06.2013, 07:24   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
все работает))
Загрузку процессора посмотри )
Обычно в такие циклы вставляют sleep(10) чтоб процессор не загружало.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.06.2013, 09:29   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Обычно в такие циклы вставляют sleep(10) чтоб процессор не загружало.
+1

а я бы ещё в цикл и Application.ProcessMessages добавил, чтобы форма "живая" была..

вот так, примерно:
Код:
while FileExists('путь') do
begin
   Sleep(10);
   Application.ProcessMessages
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.06.2013, 09:56   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
чтобы форма "живая" была..
Ну это если с формой
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.06.2013, 10:11   #7
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,869
По умолчанию

А все равно закрыть приложение крестиком не получится в этом случае. Тогда надо так делать:

Код:
var CloseForm: Boolean = False;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  CloseForm := True;
end;

procedure Sleeping;
begin
   Sleep(10);
   Application.ProcessMessages;
   if CloseForm then ExitProcess (0);
end;
И код цикла, соответственно:

Код:
while FileExists('путь') do
begin
  Sleeping;
end;
Sleeping можно вызывать из любого подобного цикла, чтобы каждый раз одно и тоже не писать.
Arigato вне форума Ответить с цитированием
Старый 27.06.2013, 12:40   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Тогда надо так делать:
Тогда уж лучше сопроцесс организовать
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать процедуры для “Цикл For ... Next ” и «Цикл Do ... Loop» по ниже приведенному условию Кристина_Патачиц Microsoft Office Excel 3 17.04.2013 17:01
не правильно составлена цикл? делфи lisa007x Помощь студентам 4 06.10.2010 18:04
цикл в делфи Яська Помощь студентам 7 26.09.2010 15:25
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34