Вызов формы из модуля

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
JumpingJack
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 61
Зарегистрирован: 25.01.2006 (Ср) 12:54

Вызов формы из модуля

Сообщение JumpingJack » 10.03.2006 (Пт) 15:12

ЗДравствуйте, есть главная форма (frmMain), из нее вызывается модуль, в котором происходит считывание данных из XMLфайла, т.к. это процесс долгий, делаю вывод еще одной формы (frmProgress) c ProgressBar'ом на ней.. все работает, но если во время выполнения модуля кликнуть мышой где-нибудь приложение подвисает до того момента пока модуль не закончит работать... как с этим бороться?

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 10.03.2006 (Пт) 15:15

А что выполняет модуль? Если цикл, то DoEvents...
А я все практикую лечение травами...

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 10.03.2006 (Пт) 15:15

Поставить DoEvents
Если всё делать своими ручками, они скоро отвалятся !

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 10.03.2006 (Пт) 15:21

Kovu
Повторять чужие ответы-не есть гут.
Изображение

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 10.03.2006 (Пт) 15:28

keks-n
Я писал когда этого ответа ещё не было :wink:
Если всё делать своими ручками, они скоро отвалятся !

JumpingJack
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 61
Зарегистрирован: 25.01.2006 (Ср) 12:54

Сообщение JumpingJack » 10.03.2006 (Пт) 15:39

Если ставить DoEvents, то при щелчке на главной форме фокус передается на нее и не видно прогресс бара... :))

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 10.03.2006 (Пт) 15:40

Надо окнo_с_прогрессбаром.Show vbModal и из него вызывать процедуру.



Kovu
Есть такая кнопочка "Предв. просмотр", позволяющая посмотреть как буит выглядеть мессага и не ответил ли кто-то раньше тебя(когда смотришь сразу кучу топиков-актуально)
Изображение

JumpingJack
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 61
Зарегистрирован: 25.01.2006 (Ср) 12:54

Сообщение JumpingJack » 10.03.2006 (Пт) 15:47

keks-n, попробую.. но нет ли более нормального способа? какие-нибудь потоки? )

А "предв. проссмотр" не поможет, т.к. кто-то может запостить ответ тогда, когда ты нажмешь "отправить"

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 10.03.2006 (Пт) 15:55

keks-n
А не много ли советов из ничего? :?
Если тебе так мешает мой ответ скажи, отредактирую на пустоту....
Если всё делать своими ручками, они скоро отвалятся !

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 10.03.2006 (Пт) 15:58

JumpingJack
Потоки в VB6... Однако. Нет можно конечно, только компилироваться надо в P-код и вылетать программа будет очень часто...
Kovu
Извини, если задел.
Изображение

JumpingJack
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 61
Зарегистрирован: 25.01.2006 (Ср) 12:54

Сообщение JumpingJack » 10.03.2006 (Пт) 16:04

keks-n, если сделать как ты сказал - раницы никакой.. все равно подвисает если кликнут куда-нибудь еще

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 10.03.2006 (Пт) 16:09

Значит криво сделал. Я обычно делаю так. + обновлять прогресбар надо из процедуры или писать Public функцию в форме, которая всё обновит и перерисует, и вызывать её из цикла.
Изображение

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 10.03.2006 (Пт) 16:29

Можно воспользоваться ещё вот этим для создания отдельного потока с заданной привилегией :roll:
Вложения
MThreadVB_882945292002.zip
(27.56 Кб) Скачиваний: 29
Если всё делать своими ручками, они скоро отвалятся !


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 108

    TopList