Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Shoshona
28 / 28 / 37
Регистрация: 03.06.2014
Сообщений: 960
#1

Как прервать отсчёт таймера?

15.07.2015, 10:25. Просмотров 428. Ответов 1
Метки нет (Все метки)

Здравствуйте суть такова... У меня есть таймер в котором есть фунция
C++
1
2
3
4
5
6
if( Timer1->Tag == 0 )
  {
      Timer1->Enabled = false;
      ShowMessage("Игра окончена");
      Memo1->Lines->Clear();
  }
и есть функция, где я обнуляю таг:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Bred::find2()
{   static bool trigger;
    if(Form2->Edit2->Text!="")
    {
        trigger ^= 1;
        a = trigger? Form2->Edit2->Text[Form2->Edit2->Text.Length()]: Form2->Edit1->Text[Form2->Edit1->Text.Length()];
        b = trigger? Form2->Edit1->Text[1]: Form2->Edit2->Text[1];
        if(a!=b)
          {
              ShowMessage("Буквы не сходятся!");
              Form2->Edit1->Text="";
              Form2->Edit2->Text="";
              Form2->Timer1->Tag=0;
          }
    }
}
Однако когда я вызываю функцию обнуление не работает... ход переходит к следующему оппоненту, то есть
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    DataModule4->ADOQuery1->Active = false;
    DataModule4->ADOQuery1->SQL->Clear();
    DataModule4->ADOQuery1->SQL->Add("SELECT COUNT (*) AS b FROM Sities WHERE name ='"+Edit1->Text+"'");
    DataModule4->ADOQuery1->Open();
 
     G.find();                                                         // тут счетчик должен обнулятся и игра заканчиватся, но...                                                                                             
    if (DataModule4->ADOQuery1->FieldByName("b")->AsInteger==0)
    {
       ShowMessage("Такого нет");
    }
    else
 
    {    // Он делает это!
   Timer1->Tag = 60;
   Timer1->Enabled = true;
    a=Edit1->Text;
   Edit2->Text="";
 
   Edit1->Enabled=false;
   Button1->Enabled=false;
   Edit2->Enabled=true;
   Button2->Enabled=true;
   ShowMessage("Хід гравця  "+Label4->Caption);
 }
Как мне сделать, чтоб если буквы не сходятся, игра останавливалась?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2015, 10:25
Ответы с готовыми решениями:

Отсчёт таймера в обратную сторону
Необходимо реализовать отсчёт таймера и заносить оставшееся время в label в...

Как прервать обработчик?
Здравствуйте, есть такая задача. В обработчике кнопки создается и запускается...

Как прервать обработчик события?
Доброе время суток. Помогите разобраться. По нажатию кнопки организуется...

Как прервать выполнение программы при некотором условии?
Всем здравствуйте. Вопрос по отладке программ в C++Builder6. void...

Обратный отсчёт
Ребята помогите разобраться по такому вопросу! Хочу сделать обратный отсчёт...

1
BRcr
4015 / 2305 / 291
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
18.07.2015, 17:55 #2
А без обнуления тэгов сразу сделать timer->Enabled = false не проще ли?.. Это в порядке рацухи.

В остальном - построй блок-схему, продумай логику работы алгоритма. Если ты сперва вырубаешь таймер, а потом в следующих же строчках кода его врубаешь обратно, чего тут еще ожидать-то?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2015, 17:55

Отсчёт времени в таймере
Как мне запилить вывод отсчёта времени из таймера в лейбл? И как при нажатии на...

Вытянуть время из Timer'a в Label (отсчёт)
Как мне запилить функцию TimeToStr (а точнее её синтаксис) чтобы она вытягивала...

Как обнаружить пропуски срабатывания таймера?
Всем привет! Проблема такая: Подключаюсь к внешнему прибору, считываю данные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru