Вижу в прогах DoEvents, а для чего она - толком не знаю. В справочниках пишут, что для передачи процесса операционке. А ЗАЧЕМ?
Пожалуйста, подробнее и на крестьянском уровне, а то я буквы не все знаю, не говоря уж про слова.


Private Sub Form_Click
Dim I As Long
For I = 1 To 1000
Caption = I
Next I
End SubPrivate Sub Form_Click
Dim I As Long
For I = 1 To 1000
Caption = I
DoEvents
Next I
End Sub

Далеко не всегда. Предположим, мне надо отослать файл через инет, и получить обработанный результат(в общем длительный процесс, который может и зависнуть). Мне надо что бы у пользователя была возмодность cancel operation. Как предлагаете сделать без DoEvents.А вообще, в правильно написанной проге чаще всего можно обойтись без DoEvents
Глупость пишут, это можно скзать разве что о SwitchTOThread или о WaitMessage. Но не как ни о DoEvents. То есть это утверждение в корне неправильно.В справочниках пишут, что для передачи процесса операционке


Это, видимо, автор так пересказал прочитанное, к тому же скорее всего источник был английскимГлупость пишут
Это не означает, что какой-то контрол передается системе, а то, что операционка прекращает выполнение инструкций твоей проги и переходит к другим в очереди.DoEvents passes control to the operating system. Control is returned after the operating system has finished processing the events in its queue and all keys in the SendKeys queue have been sent.
Поставь бесконечный цикл и сравни еще раз. 1000 слишком мало.Сравнил. И?

а то, что операционка прекращает выполнение инструкций твоей проги и переходит к другим в очереди.

Antonariy писал(а):Это, видимо, автор так пересказал прочитанное, к тому же скорее всего источник был английскимГлупость пишут
Это не означает, что какой-то контрол передается системе, а то, что операционка прекращает выполнение инструкций твоей проги и переходит к другим в очереди.DoEvents passes control to the operating system. Control is returned after the operating system has finished processing the events in its queue and all keys in the SendKeys queue have been sent.



Когда выполняется-какой то твой код, все формы "блокируются", а DoEvents их "разблокирует". Пойдет?Как бы это объяснить по рабоче-крестьянски?
Простыми словами DoEvents дает системе возможность посмотреть на наличие сообщений в очереди и их обработку
Простыми словами DoEvents дает системе возможность посмотреть на наличие сообщений в очереди текущей программы и их обработку

Dummiel писал(а):В справочниках пишут, что для передачи процесса операционке. А ЗАЧЕМ?

alibek писал(а):Сравни:
- Код: Выделить всё
Private Sub Form_Click
Dim I As Long
For I = 1 To 1000
Caption = I
Next I
End Sub
и
- Код: Выделить всё
Private Sub Form_Click
Dim I As Long
For I = 1 To 1000
Caption = I
DoEvents
Next I
End Sub

Сейчас этот форум просматривают: AhrefsBot и гости: 10