1 (изменено: hojo, 2011-11-06 15:29:08)

Тема: AHK: Счетчик k:=0, k:=%k%+1,

Здраствуйте. Возникла проблема реализации счетчика.


F5::reload
F1::

k:=0

msgbox,%k%

loop
{
	if k=6
		{
			goto exit
		}
	else
		{
			sleep 150
			k:=%k%+1
			msgbox,%k%
		}
}
exit:
msgbox,Done
}

Первый msgbox,  k=0
Второй msgbox, k=1
А все последующие пустые. Как правильно организовать увеличение счетчика ?
Я может не знаю, но существует какая нибудь inc(k) функция в ахк.

2 (изменено: Grey, 2011-11-06 16:57:45)

Re: AHK: Счетчик k:=0, k:=%k%+1,

F1::
   Msgbox,,, % k:=0, 1
   Loop
   {
      If k=6
         Goto, Exit
      Else
      {
         Sleep, 150
         k:=k+1
         Msgbox,,, % k, 1
      }
   }
Exit:
   Msgbox,,, Done, 1
   Return

Так как это цикл, можно использовать встроенную переменную:

F1::
   Msgbox,,, % k:=0, 1
   Loop
   {
      If k=6
         Break
      Else
      {
         Sleep, 150
         k:=A_Index
         Msgbox,,, % k, 1
      }
   }
   Msgbox,,, Done, 1
   Return

3

Re: AHK: Счетчик k:=0, k:=%k%+1,

Вариант с таймером:

F1::
   Msgbox,,, % k:=0, 1
   SetTimer, Countdown, 10
   Return

Countdown:
   Counter++
   If k=6
   {
      SetTimer, Countdown, Off
      Goto, Exit
   }
   Else
   {
      Sleep, 150
      k:=Counter
      Msgbox,,, % k, 1
   }
   Return

Exit:
   Counter:=0
   Msgbox,,, Done, 1
   Return

4 (изменено: hojo, 2011-11-06 16:24:04)

Re: AHK: Счетчик k:=0, k:=%k%+1,

спасибо за решение.

5 (изменено: Grey, 2011-11-06 20:31:43)

Re: AHK: Счетчик k:=0, k:=%k%+1,

F1::
   Msgbox,,, % k:=0, 1
Begin:
   If k=6
      Goto, Exit
   Sleep, 150
   Msgbox,,, % k+=1, 1
   Goto, Begin
Exit:
   Msgbox,,, Done, 1
   Return