обновление окна

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

обновление окна

Сообщение Slava2009 » 04.07.2009 (Сб) 16:10

При обработке длинного цикла окно программы никак не реагирует. приделал градусник ProgressBar пока окно программы не трогаю нормально градусник ползёт, свернул развернул или просто щёлкнул по окну, всё картинка застыла, хотя процесс идёт. Как сделать чтобы после того как нажму на кнопку "Обработать" запускался процесс обработки массива и при этом ещё и с окном можно было продолжать работать. Если тема уже обсуждалась , подкиньте ссылку, или подскажите как с этим бороться ?

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Re: обновление окна

Сообщение JohnK » 04.07.2009 (Сб) 16:28

Вставь в цикл
Код: Выделить всё
DoEvents
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: обновление окна

Сообщение Хакер » 04.07.2009 (Сб) 19:08

GetMessage->(TranslateMessage)->DispatchMessage.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: обновление окна

Сообщение Joo » 04.07.2009 (Сб) 19:55

Хакер писал(а):GetMessage->(TranslateMessage)->DispatchMessage.

Довольно действенно, но думаю хватит DoEvents
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: обновление окна

Сообщение Хакер » 04.07.2009 (Сб) 19:56

Ты думаешь наизнанку. DoEvents делает то, что я написал + кучу лишнего.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: обновление окна

Сообщение Joo » 04.07.2009 (Сб) 19:59

Хакер писал(а):Ты думаешь наизнанку. DoEvents делает то, что я написал + кучу лишнего.

А давай все на API писать!
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: обновление окна

Сообщение Хакер » 04.07.2009 (Сб) 20:15

Вообще-то, все и так пишут используя API. Если ты имел в виду WinAPI, то нет никаких оснований не использовать WinAPI вместо некоторой другой функции, которая использует те же WinAPI, но обладает существенным недостатком.

Например, внутри DoEvents есть вызов функции Sleep. Если ты считаешь, что это хорошо, когда в большом цикле при каждой итерации вызывается Sleep (который даже с 0 интервалом вызовет переключение задачи), то тогда конечно мне понятно твоё возмущение.

Например, при использовании DoEvents может «схаваться» какое-нибудь ненужное событие, например клик по кнопке, и неизвестно, к чем может это привести.

Так что твоё очередное возмущение в стиле тебя самого не к месту.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Re: обновление окна

Сообщение JohnK » 04.07.2009 (Сб) 20:34

«схаваться»

Почему такое может произойти? Были случаи?
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: обновление окна

Сообщение Joo » 04.07.2009 (Сб) 20:41

Хакер писал(а):Вообще-то, все и так пишут используя API. Если ты имел в виду WinAPI, то нет никаких оснований не использовать WinAPI вместо некоторой другой функции, которая использует те же WinAPI, но обладает существенным недостатком.

Я в курсе, но следуя твоей логике, мы должны писать в машинных кодах, так-как все к тому сводится.

Хакер писал(а):Например, внутри DoEvents есть вызов функции Sleep. Если ты считаешь, что это хорошо, когда в большом цикле при каждой итерации вызывается Sleep (который даже с 0 интервалом вызовет переключение задачи), то тогда конечно мне понятно твоё возмущение.

Иногда может быть оправданным использование именно такой функции.

Хакер писал(а):Например, при использовании DoEvents может «схаваться» какое-нибудь ненужное событие, например клик по кнопке, и неизвестно, к чем может это привести.

А может ему нужно нажимать на кнопки.

Хакер писал(а):Так что твоё очередное возмущение в стиле тебя самого не к месту.

Я возмущался? Ты что-то путаешь.

JohnK писал(а):Почему такое может произойти? Были случаи?

Попробуй, кнопка обязательно сработает. Но в 6 VB, именно это и нужно было мне.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Re: обновление окна

Сообщение JohnK » 04.07.2009 (Сб) 20:59

Я спрашивал у Хакера

Почему такое может произойти? Были случаи?


Если такое имеет место, то буду избегать это "чудо"
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: обновление окна

Сообщение Joo » 04.07.2009 (Сб) 21:03

JohnK писал(а):Я спрашивал у Хакера
Почему такое может произойти? Были случаи?

Если такое имеет место, то буду избегать это "чудо"


Твое право! Тебя же не кто не заставляет, использовать его или не использовать. Хакер объяснил как оно работает, теперь ты знаешь, возможно когда-то ты сможешь обратить этот "недостаток" в свою пользу.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: обновление окна

Сообщение Хакер » 04.07.2009 (Сб) 21:37

Joo писал(а):Я в курсе, но следуя твоей логике, мы должны писать в машинных кодах, так-как все к тому сводится.

Неправильно следуя моей логике.

Joo писал(а):Иногда может быть оправданным использование именно такой функции.

Возможно, но в этом топике не обсуждаются теоретически возможные применения функции DoEvents и те редкие случае, когда эта функция имеет неимоверные преимущества перед другими или, наоборот, недостатки.
В самом первом сообщении автор сказал, что у него длинный цикл. И помоему Sleep в длинном цикле не самое лучшее, что может быть в длинном цикле.

Joo писал(а):А может ему нужно нажимать на кнопки.

И что? Разве предложенный мною вариант не даёт ему выбор? Разве предложенный тобою — даёт?

Joo писал(а):Я возмущался? Ты что-то путаешь.

Вот:
А давай все на API писать!

И ещё раньше. Когда сказал, что DoEvents-а будет достаточно (как будто бы я предложил что-то более сложное, содержащее DoEvents и ещё дофига лишнего и ненужного, из которого одного лишь DoEvents-а будет достаточно). А ведь я просто предложил вариант, который я считаю предпочтительным. Я не кричал, что твой вариант неверный, а лишь тихо предложил. Зачем было разводить то, что ты развёл?

Если такое имеет место, то буду избегать это "чудо"

Имеет. Если программа Event-driven, и по кнопке кликнули после того, как код обработки события начал работать, то вызов DoEvents обязательно обработает этот клик. Клик ставится в очередь и ждёт своей обработки. То есть вовсе не обязательно клик должен попасть на временной интервал работы этой функции.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: обновление окна

Сообщение Joo » 04.07.2009 (Сб) 21:48

Хакер писал(а):Вот:
А давай все на API писать!

И ещё раньше. Когда сказал, что DoEvents-а будет достаточно (как будто бы я предложил что-то более сложное, содержащее DoEvents и ещё дофига лишнего и ненужного, из которого одного лишь DoEvents-а будет достаточно). А ведь я просто предложил вариант, который я считаю предпочтительным. Я не кричал, что твой вариант неверный, а лишь тихо предложил. Зачем было разводить то, что ты развёл?


Я не возмущался, я лишь подтвердил что твой способ довольно хорош:
Довольно действенно, но думаю хватит DoEvents

а потом просто сказал, что DoEvents хватит, т.к. очень часто его хватает, я же не сказал что это лучше, и навязывал свое мнение.

Зато ты вечно считаешь себя выше всех, и пытаешься показать что ты "тру-папко", и это:
Хакер писал(а):Ты думаешь наизнанку.

еще раз это доказывает.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Slava2009
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 29.06.2009 (Пн) 8:49

Re: обновление окна

Сообщение Slava2009 » 05.07.2009 (Вс) 6:56

Всем большое спасибо, помогли. :)

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: обновление окна

Сообщение Joo » 05.07.2009 (Вс) 12:10

Slava2009 писал(а):Всем большое спасибо, помогли. :)

Не за что :D
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог


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

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

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

    TopList