Вопрос: DoEvents и пользовательский ввод | Добавлено: 10.01.10 15:19 |
Автор вопроса: ![]() |
Нужно чтобы венда не считала программу зависшей, но при этом я не хочу, чтобы обрабатывались пользовательские действия.
Ситуация: в заголовке окна пишу "Буфферинг: хх%", и там меняется число. Но пользователь не может нажимать какие-либо кнопки, пока буферизация не завершится. Так как процесс может быть длительным, нужно использовать DoEvents, но как сделать, чтобы пользовательский ввод не воспринимался? |
Ответы | Всего ответов: 28 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 10.01.10 15:20 |
Ах да. Если я блокирую форму с помощью Enabled, то это защищает только от кликов мышью |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #2 | Добавлено: 10.01.10 18:22 |
Странный вопрос задаешь.
Нужно не выключая формы и контролов сделать их не восприимчивыми ко всему? Тада мудифицирую обработчики событий или ещё круче мути сабклассинг. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 10.01.10 18:53 |
Я уже купаюсь в сабклассингах. У меня даже текстбокс сабклассится, потому что нужен юникод.
Почему же не выключая? я выключаю - form1.enabled=false, но listview на enter все равно реагирует (ну или кнопка), так как листвью сабклассится, то я ему ставлю флаг, чтобы не обрабатывал клавиатуру. Так что вроде с костыльми, но справился. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #4 | Добавлено: 11.01.10 00:37 |
Хренасе хрень |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 403099048 Вопросов: 22 Ответов: 94 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 11.01.10 07:25 |
Незнаю почемуц, но у меня функция DoEvents всё-равно не пашет. Форма зависает и всё... |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 11.01.10 09:58 |
Покажи кусок, в который ты ее вставил. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #7 | Добавлено: 11.01.10 10:25 |
Покажи кусок, в который ты ее вставил.
[telepat mode]Наверняка грузит какую нибудь страницу из инета в основном потоке, а после этого вызывает DoEvents ![]() |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 403099048 Вопросов: 22 Ответов: 94 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 11.01.10 12:36 |
Ну вот. Куда я не вставлял - нихрена... EROS, да нет ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 11.01.10 13:09 |
Смотрим. Можно поставить DoEvents во внутренний цикл, но не в условие.
Если это не помогает, очевидно, что большую часть времени занимает не эти два вложенных цикла, а функция TestFunc. Значит, DoEvents желательно вставить еще и в нее. |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 11.01.10 18:44 |
У меня кажется появилась новая гениальная идея. Чтобы не воспринимать ввод, нужно показать модальное окно) попробую |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #11 | Добавлено: 11.01.10 19:24 |
VBD не "ещё и в неё", а только в неё.
Winаnd, а потом ты из потока закрывать окно будешь? |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #12 | Добавлено: 11.01.10 19:50 |
чорд. Оно же перекрывает выполнение кода. не подумал) |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #13 | Добавлено: 11.01.10 20:37 |
В переменные формы
В Form_Unload
В цикл, где DoEvents
? |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #14 | Добавлено: 11.01.10 20:37 |
Ну примерно в смысле. Там доработаешь васю если чо)) |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 403099048 Вопросов: 22 Ответов: 94 |
Web-сайт: Профиль | Цитата | #15 | Добавлено: 11.01.10 22:10 |
VѓАDUnit, „„„Ђ„w „~„y„‡„‚„u„~„p. „@ „†„…„~„{„€„y„‘ „r„ѓ„u„s„Ђ „|„y„Љ„Ћ „Ѓ„‚„Ђ„r„u„‚„‘„u„„ „„„u„{„ѓ„„-„q„Ђ„{„ѓ„Ќ „~„p „x„~„p„‰„u„~„y„‘. „P„Ђ„Џ„„„Ђ„}„… „„„p„} „~„y„{„p„{„Ђ„s„Ђ „€„y„{„|„p „t„p„w „~„u„„. „B„Ѓ„‚„y„~„€„y„Ѓ„u, „Џ„„„… „†„…„~„{„€„y„ђ „}„Ђ„w„~„Ђ „q„Ќ„|„Ђ „y „~„p„Ѓ„‚„‘„}„…„ђ „r„ѓ„„„p„r„y„„„Ћ, „~„Ђ „Ѓ„‚„Ђ„ѓ„„ „{„Ђ„t„p „}„~„Ђ„s„Ђ „y „‚„u„Љ„y„| „Ђ„„„t„u„|„y„„„Ћ. „@ „†„…„~„{„€„y„‘ „Џ„„„p „r„Ќ„s„|„‘„t„y„„ „r„Ђ„„ „„„p„{:
|
|