Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.01.2011, 01:40
Skwaer Skwaer вне форума
Прохожий
 
Регистрация: 06.01.2011
Сообщения: 3
Репутация: 10
Счастье Выход из неправрыного цикла

Существует такая задачка:

Программа по кнопке запускает непрерывный цикл. По нажатию на другую кнопку происходит выход из цикла. Как это реализовать в XP несколькими способами?
  #2  
Старый 06.01.2011, 02:18
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Все методы будут основаны на том, что надо отслеживать значение некотиорой глобальной переменной (если цикл действительно бесконечный).
1. Отслеживание внутри цикла значения некоторой глобальной переменной
2. Отслеживание атома/семафора/etc
3. Использование pipe/mmf для передачи сигнала остановки
4. просто появление файлика. Есть файлик - выходим из цикла.
и т.д.
  #3  
Старый 06.01.2011, 03:41
Skwaer Skwaer вне форума
Прохожий
 
Регистрация: 06.01.2011
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Все методы будут основаны на том, что надо отслеживать значение некотиорой глобальной переменной (если цикл действительно бесконечный).
1. Отслеживание внутри цикла значения некоторой глобальной переменной
2. Отслеживание атома/семафора/etc
3. Использование pipe/mmf для передачи сигнала остановки
4. просто появление файлика. Есть файлик - выходим из цикла.
и т.д.
Как же много я еще пока не знаю... Спасибо большое!
по пункту 1. Как изменить значение этой переменной, если программа выполняется только цикл?
по пункту 2-3. Тут я полный ноль, надо читать и изучать.
по пункту 4. Т.е. написать программу которая запускала бы другую программу с циклом включающим проверку наличия файла. А по кнопки основная программа создавала бы там фаил? Хитро )) Ну или тоже самое можно сделать через потоки?
  #4  
Старый 06.01.2011, 06:14
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Skwaer
Как же много я еще пока не знаю... Спасибо большое!
по пункту 1. Как изменить значение этой переменной, если программа выполняется только цикл?
по пункту 2-3. Тут я полный ноль, надо читать и изучать.
по пункту 4. Т.е. написать программу которая запускала бы другую программу с циклом включающим проверку наличия файла. А по кнопки основная программа создавала бы там фаил? Хитро )) Ну или тоже самое можно сделать через потоки?

1. Вызывай внутри цикла Application.ProcessMessages - тогда у тебя интерфейс не будет "висеть" и можно будет нажать кнопку.
2-3. Вообще, без крайней нужды такие методы лучше не использовать, т.к. уменьшается кол-во ресурсов в ситеме. Хотя это и не так страшно. Вообще, с этими технологиями возни больше, чем толку от них. поэтому если можешь обойтись без них, то луше их не использовать.
4. Можно и через потоки. Кстати. сами потоки устроены подобным образом (не все, а которые должны выполняться постоянно).
  #5  
Старый 07.01.2011, 06:45
Skwaer Skwaer вне форума
Прохожий
 
Регистрация: 06.01.2011
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
1. Вызывай внутри цикла Application.ProcessMessages - тогда у тебя интерфейс не будет "висеть" и можно будет нажать кнопку.
2-3. Вообще, без крайней нужды такие методы лучше не использовать, т.к. уменьшается кол-во ресурсов в ситеме. Хотя это и не так страшно. Вообще, с этими технологиями возни больше, чем толку от них. поэтому если можешь обойтись без них, то луше их не использовать.
4. Можно и через потоки. Кстати. сами потоки устроены подобным образом (не все, а которые должны выполняться постоянно).
Спасибо большое за разъяснения! Тему можно закрывать.
Закрытая тема


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:00.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025