Author Topic: Цикл for на втором проходе останавливается  (Read 1891 times)

0 Members and 1 Guest are viewing this topic.

Doberman

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Кто разбирается посмотрите пожалуйста где ошибка или может глюк.
Code: (clickermann) [Select]
FOR($a=0,$a<2)
WAITMS(50)
KEYPRESS(93)
WAIT(1)
KEYPRESS(#up)
WAIT(1)
KEYPRESS(#enter) \\ На втором проходе здесь останавливается, издает звук, работа прекращена.
WAIT(1)
WHILE($ch = 0)
WAIT(1)
GETSCREEN
WAITMS(600)
IF_PICTURE_IN (70,250, 141,288, "shot0002.bmp")
      print("Äîñò-Â X=", $_return1, ", Y=", $_return2)
$ch = 1
Else
   HINTPOPUP("Äîñò- нет")
WAITMS(40)
END_IF
END_CYC
KEYDOWN(#ctrl)
WAITMS(50)
KEYDOWN(#tab)
WAITMS(50)
KEYup(#tab)
WAITMS(50)
KEYup(#ctrl)
WAITMS(50)
WHILE($checs = 0)
WAITMS(400)
GETSCREEN
WAITMS(10)
IF_PICTURE_IN (25,143, 308,438, "shot0001.bmp")
      print("Ãàëê-Â X=", $_return1, ", Y=", $_return2)
$checs = 1
Else
   HINTPOPUP("Ãàëê- нет")
 WAITMS(400) 
END_IF
END_CYC
WAITMS(400)
LCLICK(105,347)
WAITMS(600)
KEYPRESS(#enter)
WHILE($checss = 0)
WAITMS(50)
GETSCREEN(178,477, 178,477)
WAITMS(50)
IF_PIXEL_IN(178,477, 178,477, 16777215)
      print("Áåëûé-â X=", $_return1, ", Y=", $_return2)
$checss = 1
Else
   HINTPOPUP("Áåëûé- нет")
   WAITMS(400)
   END_IF
END_CYC
WAITMS(500)
END_CYC
HALT
« Last Edit: October 23, 2017, 04:00:07 PM by Vint »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
А почему ты уверен что там останавливается?

Я думаю, что ещё жмёт CTRL+TAB и
Code: (clickermann) [Select]
    LCLICK(105,347)
    WAITMS(600)
    KEYPRESS(#enter)

и останавливается штатно в конце, по HALT.

А все три цикла WHILE выключены после первого прохода. Ведь переменные не сброшены.


Doberman

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Все работает, но без цикла.
Сначала пробывал как есть без цикла -результат такой-же... Долго редактировал... ни чего помогало... И наконец очередная идея разрешила ситуацию. А именно, поменял название переменных в WHILE которые на втором заходе участвуют.

Doberman

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
М да похоже на то, а как сбрасывать? Кажется так:
Code: [Select]
UNDEFINE($a) Спасибо
« Last Edit: October 23, 2017, 04:24:21 PM by Doberman »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Какое $a? При чём здесь переменная $a
Не задаёшь начальные значения переменных участвующих в условиях циклов WHILE
Code: (clickermann) [Select]
FOR($a=0, $a < 2)
    $ch = 0
    $checs = 0
    $checss = 0
    WHILE($ch = 0)
        $ch = 1
    END_CYC
   
    WHILE($checs = 0)
        $checs = 1
    END_CYC
   
    WHILE($checss = 0)
        $checss = 1
    END_CYC
END_CYC
HALT