Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Space
-
- Combo-маньяк
-
-
- Сообщения: 818
- Зарегистрирован: 11.01.2007 (Чт) 1:19
- Откуда: Украина
Space » 11.01.2007 (Чт) 2:04
При закрытии формы возникает Unload. У меня есть задержка в таймере 15 сек, интервал вызова таймера = 20 сек. Похоже, ещё работает код в таймере и там идёт обращение к контролам на форме. И снова грузится форма! Присвоение Interval=0 или Enabled=0 таймеру в Form_Unload не прекращает выполнение кода в работающем до этого таймере. Как форму выгрузить нормально? Ждать окончания работы таймера долговато. Установить флаг выгрузки формы и проверять в коде таймера коряво. Вот если бы как-то прекратить выполнение кода в таймере вместе с его выгрузкой?...
-
BV
-
- Thinker
-
-
- Сообщения: 3987
- Зарегистрирован: 12.09.2004 (Вс) 0:55
- Откуда: Молдавия, г. Кишинёв
-
BV » 11.01.2007 (Чт) 2:10
End - радикально.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
-
GSerg
-
- Шаман
-
-
- Сообщения: 14286
- Зарегистрирован: 14.12.2002 (Сб) 5:25
- Откуда: Магадан
GSerg » 11.01.2007 (Чт) 4:32
Space писал(а):Установить флаг выгрузки формы и проверять в коде таймера коряво. Вот если бы как-то прекратить выполнение кода в таймере вместе с его выгрузкой?...
А между тем второе предложение осуществляется именно посредством первого...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас
-
Space
-
- Combo-маньяк
-
-
- Сообщения: 818
- Зарегистрирован: 11.01.2007 (Чт) 1:19
- Откуда: Украина
Space » 11.01.2007 (Чт) 17:27
А если у меня стоит Sleep в таймере? Будет задержка, если обрабатывать через флаги. Не существует никакого способа экстренно прервать выполнение процедуры, кроме END?
-
alibek
-
- Большой Человек
-
-
- Сообщения: 14205
- Зарегистрирован: 19.04.2002 (Пт) 11:40
- Откуда: Russia
alibek » 11.01.2007 (Чт) 17:30
Разумеется, существует. Exit Sub, внутри процедуры.
Lasciate ogni speranza, voi ch'entrate.
-
Twister
-
- Теоретик
-
-
- Сообщения: 2251
- Зарегистрирован: 28.06.2005 (Вт) 12:32
- Откуда: Алматы
-
Twister » 11.01.2007 (Чт) 17:34
А если у меня стоит Sleep в таймере?
Sleep заставляет поток, вызвавший ее, "уснуть" на некоторое время. Так что вызов END отложится на какое-то время. Я так понял тебе не просто форму выгрузить, а вообще завершить работу? Единственный выход в данном случае (всмысле моментально завершить работу) - вызвать ExitProcess/TerminateProcess в другом потоке...
А я все практикую лечение травами...
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: Google-бот, Mail.ru [бот], Yandex-бот и гости: 53