Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Временная остановка процедуры или цикла 
:(
    Опции темы
Scorpeon
Дата 4.10.2007, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.5.2007

Репутация: нет
Всего: нет



такая вот проблема, вот у меня допустим выполняется какой-нибудь цикл или идет выполнение процедуры... Вообщем мне надо на время остановить его выполнение. 
Допустим идет цикл, а мне надо в середине цикла вызвать окно unit2 и запросить какой-нибудь вопрос типо впишите дату рождения а потом нажав ок продолжить выполнение того окна с того же места в цикле, можно ли так?
PM MAIL   Вверх
Alexeis
Дата 4.10.2007, 13:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Scorpeon, это называется вызов модального окна. Пока модальное окно выполняется основная форма блокируется, по выходу из модального окна возвращается результат.

Добавлено через 2 минуты и 4 секунды
Например так Form2.ShowModal(); 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
СЭНСЭЙ
Дата 4.12.2007, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



А если просто паузу вставить?
Или модальное окно на время открыть? И где нибудь таймер поставить обратного отсчета до закрытия?
Как это сделать?
Ато мне тоже нужно в одной проге такое сделать.
PM MAIL   Вверх
Akella
Дата 4.12.2007, 19:47 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(СЭНСЭЙ @  4.12.2007,  18:30 Найти цитируемый пост)
А если просто паузу вставить?

Sleep(1000) усыпит прогу на 1 сек

Добавлено через 1 минуту и 20 секунд
а можно почитать немного о потоках и засунуть процедуру в поток, а потом усыплять поток и будить, что не повлияет на программу
PM MAIL   Вверх
pavelv
Дата 5.12.2007, 05:57 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



Помимо модального окна можно юзать потоки. Смотри BeginThread(....). Их можно останавливать, а потом когда нужно запускать.
PM MAIL   Вверх
Alexeis
Дата 5.12.2007, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



  Какой ужас, читайте хоть 
Цитата(Akella @  4.12.2007,  19:47 Найти цитируемый пост)
Sleep(1000) усыпит прогу на 1 сек

  Ага и вся прога заснет на секунду и перестанет отвечать.

  Нафига тут потоки  smile . Задача простая до безумия, какие потоки  smile , а тем более  BeginThread, который с VCL фиг засинхроинизируешь. Просто ужас. Сейчас не выдержу и как начну расставлять минусы  smile 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Lexicss
Дата 5.12.2007, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 16.8.2006
Где: Беларусь, Минск

Репутация: нет
Всего: 1



Цитата(СЭНСЭЙ @ 4.12.2007,  18:30)
А если просто паузу вставить?
Или модальное окно на время открыть? И где нибудь таймер поставить обратного отсчета до закрытия?
Как это сделать?
Ато мне тоже нужно в одной проге такое сделать.

Вызываешь модальное окно, а на модальном окне размещаешь компонент TTimer, которому задаёшь время срабатыванія и событие - закрыть модальную форму.
--------------------
Бери от жизни всё.
PM MAIL WWW ICQ Skype   Вверх
pavelv
Дата 6.12.2007, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



Alexeis на потоки говорил больше на 
Цитата

А если просто паузу вставить?

Имхо неплохое решение вроде, если не так не бейти smile. Правда почему-то я этот вопрос прочитал отдельно от остальных, показалось что про модальное окно это о другом уже речь.
PM MAIL   Вверх
SlaUr
Дата 10.12.2007, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 18.9.2003

Репутация: 3
Всего: 5



Код

....
uses unit2
...

begin
  //выполняем что-то 
   Form2.show;Stop:=true;
   While stop do 
   begin
   Sleep(100);Application.ProccesMesage;
   end;
  //продолжаем выполнение
end;




unit2
Код

...
var stop:boolean;
....
procedure TForm2.Button1Click(Sender: TObject);
begin
Stop:=False;
Form2.Hide;
end;
//еще нужно добавить на закрытие формы чтобы stop:=False;


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0559 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.