![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Форма для ожидания
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]длительные вычисления вынести в поток.