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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2013, 10:04   #1
denis_gidin
 
Регистрация: 30.08.2012
Сообщений: 8
Восклицание Критические секции или события?

Здравствуйте!
Проблема в следующем
хочу остановить цикл и дождаться завершения процедуры
например:
есть глобальные переменные
Код:
var
  DoRun: Boolean = false; //Состояние выполнение процедуры
  Stop: Boolean = false; //Остановка цикла
в процедуре Button1 выполняется цикл:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  DoRun := True;
  while 1 < 2 do
  begin
    application.ProcessMessages;
    if Stop then
      break;
  end;
  DoRun := false;
end;
в процедуре Button2 хочу остановить цикл и дождаться завершение процедуры Button1:
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
  Stop := True;
  while DoRun do
    application.ProcessMessages;
  ShowMessage('Stop!');
end;
После того как нажимаю Button2 процедура зацикливается
так как значение переменной DoRun равна истине.
Подскажите пожалуйста как правильно организовать остановку?
Если можно примером...
Спасибо!
denis_gidin вне форума Ответить с цитированием
Старый 19.01.2013, 11:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как правильно организовать остановку?
Правильно это будет сделать в отдельном потоке, а не стопорить главный, потом разрешать ему читать сообщения, потом опять стопорить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.01.2013, 11:06   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Я у себя так это делал
Человек_Борща вне форума Ответить с цитированием
Старый 19.01.2013, 11:33   #4
denis_gidin
 
Регистрация: 30.08.2012
Сообщений: 8
По умолчанию

Спасибо! Посмотрел интересное решение!
denis_gidin вне форума Ответить с цитированием
Старый 19.01.2013, 11:33   #5
denis_gidin
 
Регистрация: 30.08.2012
Сообщений: 8
По умолчанию

Спасибо Виталий!
denis_gidin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Критические секции tcriticalsection Dеlphi Общие вопросы Delphi 5 11.10.2011 19:45
Критические секции coNsept Общие вопросы C/C++ 7 09.09.2011 00:54
Объекты ожидания в Delphi. Мьютекс, Семафор и Критические секции. OlgaZN Помощь студентам 2 11.06.2010 12:01
Критические секции в Linux Sparky Помощь студентам 2 28.05.2010 08:33
Критические секции Altera Общие вопросы Delphi 2 25.12.2009 10:45