Не корректно работает вывод в Text.box и опрос клавиш - VB

Узнай цену своей работы

Формулировка задачи:

Пишу программку для 3D сканера (последний раз писал на VB лет десять назад). Сама программа работает, а вод вывод данных на экран ведет себя непонятно. На форме текстовое окно (в нем должен отображаться номер текущей точки сканирования), а вместо этого отображаются только начальный и конечный. Промежуточные не показываются. Вот грубо фрагмент кода: По нажатию кнопки вызывается подпрограмма чтения данных сканирования, головка перемещается в следующую точку сканирования, её номер выводится на экран. Пробовал с циклом, та-же лажа. Выводятся первая и последняя точки.
Листинг программы
  1. Private Sub Command1_Click()
  2. M:
  3. Call READDAT
  4. DY = DY - 1:
  5. Pos_Y.Text=DY
  6. If DY > 0 Then GoTo M
  7. End Sub
И еще вопросик по слежению за клавишами Вот кусочек кода:
Листинг программы
  1. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  2. TTT.Text = KeyCode
  3. If KeyCode = 39 Then os = 1: Call VP
  4. If KeyCode = 37 Then os = 1: Call NZ
  5. If KeyCode = 38 Then os = 2: Call VV
  6. If KeyCode = 40 Then os = 2: Call VN
  7. End Sub
Работать работает, но двигатели работают рывками. При нажатии на клавишу управления курсором сначала двигатели дергаются однократно, потом включается автоповтор клавиатуры и движение становится равномерным, но из-за низкой скорости автоповтора довольно медленное. Каким образом можно опрашивать клавиатуру, чтобы подпрограмма движения выполнялась только пр нажатой клавише?

Решение задачи: «Не корректно работает вывод в Text.box и опрос клавиш»

textual
Листинг программы
  1. Dim F As Boolean
  2.  
  3. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  4.     TTT.Text = KeyCode
  5.     F = True
  6.     Do While F
  7.        Select Case KeyCode
  8.               Case 39: os = 1: Call vp
  9.               Case 37: os = 1: Call nz
  10.               Case 38: os = 2: Call vv
  11.               Case 40: os = 2: Call vn
  12.        End Select
  13.        DoEvents
  14.     Loop
  15. End Sub
  16.  
  17. Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
  18.     F = False
  19. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы