Останавливается таймер.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Лёха
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 30.04.2005 (Сб) 9:44

Останавливается таймер.

Сообщение Лёха » 30.04.2005 (Сб) 10:04

Привет.
До недавнего времени занимался только разработкой железа.
Совсем недавно пришлось изучать VB.
Проблемма вот в чём:
На таймере в Form1 у меня сидит приём по USB в стринговую переменную.
Если я открываю новую форму Form2 из Form1, то в этот момент таймер Form1 перестаёт работать и я не могу принимать данные по USB.
Такая же проблемма, если я запускаю ShowOpen или ShowSave или MsgBox.
Как заставить всё время работать таймер Form1.

Dzhon
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 236
Зарегистрирован: 09.12.2003 (Вт) 13:30
Откуда: Россия, Омск

Сообщение Dzhon » 30.04.2005 (Сб) 11:00

Поиском нужно пользоваться, ПОИСКОМ.....
[url]
http://bbs.vbstreets.ru/viewtopic.php?t ... ight=timer
[/url]
Недавно обсуждалось совсем.
Если непонятно что-то будет тады и спрашивай :wink:
Ми..и...и...и..р Вашему дому.............

Лёха
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 30.04.2005 (Сб) 9:44

Сообщение Лёха » 02.05.2005 (Пн) 3:25

Спасибо. Работает.
Есть один нюанс. Я не могу отключить этот таймер в теле самой
процедуры. У меня при возникновении ошибки приёма по USB таймер
должен остановиться.

Public Sub TimerCallBack(ByVal lpParameter As Long, ByVal TimerOrWaitFired As Long)
Здесь не могу отключить
End Sub

Здесь могу отключить

Что можно сделать?
Лёха.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 02.05.2005 (Пн) 6:37

Лёха

Ты отключаешь вот так?

Код: Выделить всё

DeleteTimerQueueTimer hQueue, hTimer, ByVal 0&
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Лёха
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 30.04.2005 (Сб) 9:44

Сообщение Лёха » 02.05.2005 (Пн) 7:00

Привет.
Да я пытался отключить вот так:
DeleteTimerQueueTimer hQueue, hTimer, ByVal 0&
и вот так:
DeleteTimerQueueTimer hQueue
Вот ведь какая "штука" получается - в теле самой
процедуры это не работает и MsgBox размножается по экрану
в больших количествах равному тику таймера т.е. прерывания.
Если я отключаю вне тела самой процедуры, то всё ОК.
В принципе мне нужно постоянное прерывание, которое
не зависает от внешних факторов (MsgBox, ShowOpen и т.д.)
и, чтобы его можно было отключать в теле самого прерывания.
Надеюсь понятно объяснил, а то пишу одно, а мысли уже
далеко вперёд летят.
Лёха.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 02.05.2005 (Пн) 7:06

Лёха

Есть такая команда называется Exit Sub

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

Лёха
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 30.04.2005 (Сб) 9:44

Сообщение Лёха » 02.05.2005 (Пн) 7:22

Я думаю поможет.
Но в моём случае ещё и "флажок" нужно завести и Таймер1
включить, а уже потом Exit Sub.
В таймер1 по флажку True выполнить
DeleteTimerQueueTimer hQueue, hTimer, ByVal 0&
Вот тогда все получиться.
Вообще то не очень красиво выйдет.

У меня вот такой вопрос:
Я вот думаю, если завести Form2 и на ней таймер2.
В Form1, если запустить MsgBox, то Таймер1 замораживается,
а что будет с Таймером2 Form2? Продолжит ли он при этом
считать.
Лёха.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 02.05.2005 (Пн) 10:01

Лёха

Ты упомянул ошибку по USB.

Ты эту ошибку где отлавливаешь?

В смысле какой процедуре?
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.


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

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 137

    TopList