Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Форма для ожидания


Grinder ©   (2007-10-28 11:19:00) 

Привет, такой вопрос: у меня есть форма, один из  участков кода в этой форк, выполняется очень долго, поэтому я хочу сделать форму ожидания, т.е пока выполняется длинный код,эта форма висит и говорит юзеру чтобы тот ждал, я это делал так: создал форму открыл ее как модальную, но как известно теперь код в другой форме не выполняется. Как сделать так, чтобы эффект был как у модальной формы (т.е юзер бы не смог ничего сделаьт с первой формой), но код в первой форме выполнялся бы, когда модальная форма открыта. Спасибо!


Leonid Troyanovsky   (2007-10-29 12:15:00) [1]


> Плохиш ©   (28.10.07 18:49) [14]

> не по адресу, адресуй их homm.

Был рассеян, sorry.

2homm ©: [13]

--
Regards, LVT.


Плохиш   (2007-10-28 18:50:00) [2]


> homm ©   (28.10.07 15:54) [12]
> > [10] Плохиш ©   (28.10.07 15:31)
> > Форму-то он модально вызвал, может стоит вопрос прочитать?
>
>
> Такая форма без труда примет сообщение и обработает его,
>  ага?

Ссылки из [13] прочитал уже?


Плохиш   (2007-10-28 18:49:00) [3]


> Leonid Troyanovsky ©   (28.10.07 16:52) [13]

> > Плохиш ©   (28.10.07 15:31) [10]

Не кажется ли тебе, что ссылки приводишь не по адресу, адресуй их homm.


Leonid Troyanovsky   (2007-10-28 16:52:00) [4]


> Плохиш ©   (28.10.07 15:31) [10]

> В какое место предлагаешь ему Application.ProcessMessages
> поставить?

http://www.rsdn.ru/Forum/?mid=573413
http://www.rsdn.ru/Forum/Message.aspx?mid=500558&only=1

--
Regards, LVT.


homm   (2007-10-28 15:54:00) [5]

> [10] Плохиш ©   (28.10.07 15:31)
> Форму-то он модально вызвал, может стоит вопрос прочитать?

Такая форма без труда примет сообщение и обработает его, ага? ;)
А если ты про PostMessage а не про Send, то зачем тогда моразм с сообщениями? Функция-член и вперед :)


Virgo_Style   (2007-10-28 15:47:00) [6]

Если "участок кода" - это цикл, то, совмещая [3] и [4], можно передать модальной форме callback-процедуру, и пусть она ее вызывает хоть по таймеру, хоть в перемешку с processmessages'ами.
Извращаться - так от души))


Плохиш   (2007-10-28 15:31:00) [7]


> homm ©   (28.10.07 14:33) [5]

В какое место предлагаешь ему Application.ProcessMessages поставить? Форму-то он модально вызвал, может стоит вопрос прочитать?


homm   (2007-10-28 15:26:00) [8]

> [8] Virgo_Style ©   (28.10.07 15:25)
> Имею смелость полагать мой ответ [1] полностью отвечающим
> обеим задачам.

Не спорю. В реализации сложнее только слегка, потому было [2].


Virgo_Style   (2007-10-28 15:25:00) [9]

homm ©   (28.10.07 14:56) [7]

Имею смелость полагать мой ответ [1] полностью отвечающим обеим задачам.

Решение [4] постановке задачи соответствует. Несколько формально, трудно спорить)
Решение [3] не соответствет постановке задачи, хотя года три тому назад я бы посчитал его приемлемым.


homm   (2007-10-28 14:56:00) [10]

> [6] Virgo_Style ©   (28.10.07 14:49)
> Может и сложнее, зато вопросу соответствует

А важнее на вопрос ответить, или человека научить правильно делать?


Virgo_Style   (2007-10-28 14:49:00) [11]

homm ©   (28.10.07 14:33) [5]
Получилось проще в реализации и логичнее в поведении, нежели [3], ага?


Может и сложнее, зато вопросу соответствует


homm   (2007-10-28 14:33:00) [12]

> [4] Плохиш ©   (28.10.07 12:29)
> При отображении формы посылаешь форме с обработкой сообщение,
> в обработчике сообщения делаешь свою долгую обработку,
> после обработки закрываешь свою модальную форму.

Получилось проще в реализации и логичнее в поведении, нежели [3], ага?


Плохиш   (2007-10-28 12:29:00) [13]


> Grinder   (28.10.07 11:40) [2]

При отображении формы посылаешь форме с обработкой сообщение, в обработчике сообщения делаешь свою долгую обработку, после обработки закрываешь свою модальную форму.


homm   (2007-10-28 11:52:00) [14]

Поставь Application.ProcessMessages, что-бы она периодически (раз 20 в секунду) вызывалась во время вычислений.


Grinder   (2007-10-28 11:40:00) [15]

Блин а по-проще как-нить можно это сделать без потоков


Virgo_Style   (2007-10-28 11:35:00) [16]

длительные вычисления вынести в поток.


Наверх

Титульная страница Поиск, карта сайта Написать письмо