b4a Вставьте таймер в код

Я француз, так что извините за мой английский, я делаю все возможное...

Я пытаюсь вызвать подпрограмму с именем timer1_tick, и я хочу, чтобы она остановила мою подпапку "b_reponse1_click". Проблема в том, что мой саб не ждет конца таймера...

Код:

Sub Process_Globals
  Dim Timer1 As Timer
  ....
  End Sub

Sub Activity_Create(FirstTime As Boolean)
 Timer1.Initialize("Timer1", 1000) ' 1000 = 1 second
 Timer1.Enabled = True
 ...
 End Sub

Sub b_reponse1_Click
p= p + 1
If b_reponse1.Text = r5 Then
    score = score + 1
    b_reponse1.Color=Colors.Green
    CallSub("",timer1_tick)      ' Here i call sub timer1_tick 
    b_reponse1.Color=Colors.Gray
    Else
    b_reponse1.Color=Colors.Red
    b_reponse1.Color=Colors.Gray
End If

If nbqpassee = 10 Then
    Activity.RemoveAllViews
    Activity.LoadLayout("lay_main")
    Else
        CallSub("",loadq)
End If
End Sub

Timer1 обратный отсчет, но мой sub b_reponse1_Click продолжает выполнение, не дожидаясь окончания таймера

Таймер:

Код:

Sub timer1_tick
 t = t + 1
 Log(t)
End Sub

Я пробовал это, но не решил мою проблему:

Код:

 Sub timer1_tick
 t = t + 1
 Log(t)
 timer1.Enabled = False
 End Sub

Знаете ли вы, как я могу сделать, чтобы остановить мой sub b_reponse1_click около 1 секунды?

Спасибо заранее за ответ!

1 ответ

Решение

timer1_tick - обычная подпрограмма, как и любая другая подпрограмма. Это не заставит выполнение кода ждать.

Поиск по форуму для CallSubPlus. Вы можете разбить ваш текущий саб на два сабвуфера, а затем вызвать второй саб с CallSubPlus, который запустится после указанного времени.

Другие вопросы по тегам