Страница: 1 | 2 |
Вопрос: DoEvents и пользовательский ввод
Добавлено: 10.01.10 15:19
Автор вопроса: Winand | Web-сайт:
Нужно чтобы венда не считала программу зависшей, но при этом я не хочу, чтобы обрабатывались пользовательские действия.
Ситуация: в заголовке окна пишу "Буфферинг: хх%", и там меняется число. Но пользователь не может нажимать какие-либо кнопки, пока буферизация не завершится. Так как процесс может быть длительным, нужно использовать DoEvents, но как сделать, чтобы пользовательский ввод не воспринимался?
Ответы
Всего ответов: 28
Номер ответа: 1
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #1
Добавлено: 10.01.10 15:20
Ах да. Если я блокирую форму с помощью Enabled, то это защищает только от кликов мышью
Номер ответа: 2
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #2
Добавлено: 10.01.10 18:22
Странный вопрос задаешь.
Нужно не выключая формы и контролов сделать их не восприимчивыми ко всему?
Тада мудифицирую обработчики событий или ещё круче мути сабклассинг.
Номер ответа: 3
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #3
Добавлено: 10.01.10 18:53
Я уже купаюсь в сабклассингах. У меня даже текстбокс сабклассится, потому что нужен юникод.
Почему же не выключая? я выключаю - form1.enabled=false, но listview на enter все равно реагирует (ну или кнопка), так как листвью сабклассится, то я ему ставлю флаг, чтобы не обрабатывал клавиатуру. Так что вроде с костыльми, но справился.
Номер ответа: 4
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #4
Добавлено: 11.01.10 00:37
Хренасе хрень
Номер ответа: 5
Автор ответа:
PROgrammIST
ICQ: 403099048
Вопросов: 22
Ответов: 94
Web-сайт:
Профиль | | #5
Добавлено: 11.01.10 07:25
Незнаю почемуц, но у меня функция DoEvents всё-равно не пашет. Форма зависает и всё...
Номер ответа: 6
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #6
Добавлено: 11.01.10 09:58
Покажи кусок, в который ты ее вставил.
Номер ответа: 7
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #7
Добавлено: 11.01.10 10:25
[telepat mode]Наверняка грузит какую нибудь страницу из инета в основном потоке, а после этого вызывает DoEvents [/telepat mode]
Номер ответа: 8
Автор ответа:
PROgrammIST
ICQ: 403099048
Вопросов: 22
Ответов: 94
Web-сайт:
Профиль | | #8
Добавлено: 11.01.10 12:36
Ну вот. Куда я не вставлял - нихрена...
EROS, да нет Неугадал)))
Номер ответа: 9
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #9
Добавлено: 11.01.10 13:09
Смотрим. Можно поставить DoEvents во внутренний цикл, но не в условие.
Если это не помогает, очевидно, что большую часть времени занимает не эти два вложенных цикла, а функция TestFunc. Значит, DoEvents желательно вставить еще и в нее.
Номер ответа: 10
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #10
Добавлено: 11.01.10 18:44
У меня кажется появилась новая гениальная идея. Чтобы не воспринимать ввод, нужно показать модальное окно) попробую
Номер ответа: 11
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #11
Добавлено: 11.01.10 19:24
VBD не "ещё и в неё", а только в неё.
Winаnd, а потом ты из потока закрывать окно будешь?
Номер ответа: 12
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #12
Добавлено: 11.01.10 19:50
чорд. Оно же перекрывает выполнение кода. не подумал)
Номер ответа: 13
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #13
Добавлено: 11.01.10 20:37
В переменные формы
В Form_Unload
В цикл, где DoEvents
?
Номер ответа: 14
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #14
Добавлено: 11.01.10 20:37
Ну примерно в смысле. Там доработаешь васю если чо))
Номер ответа: 15
Автор ответа:
PROgrammIST
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„{: