Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
Shoshona
27 / 27 / 8
Регистрация: 03.06.2014
Сообщений: 958
#1

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

15.07.2015, 10:25. Просмотров 410. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как прервать отсчёт таймера? (C++ Builder):

Отсчёт таймера в обратную сторону - C++ Builder
Необходимо реализовать отсчёт таймера и заносить оставшееся время в label в виде "осталось Х минут У секунд"

Как прервать обработчик? - C++ Builder
Здравствуйте, есть такая задача. В обработчике кнопки создается и запускается поток, который завершается по определенному счетчику (числу...

Как прервать обработчик события? - C++ Builder
Доброе время суток. Помогите разобраться. По нажатию кнопки организуется длинный цикл, при этом на форме все элементы становятся...

Обратный отсчёт - C++ Builder
Ребята помогите разобраться по такому вопросу! Хочу сделать обратный отсчёт для этого я сделал так TDateTime time =...

Отсчёт времени в таймере - C++ Builder
Как мне запилить вывод отсчёта времени из таймера в лейбл? И как при нажатии на клавишу мне таймер запустить заново? Заранее благодарен.

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

1
BRcr
4015 / 2305 / 156
Регистрация: 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
Привет! Вот еще темы с ответами:

как сделать вывод таймера на 2ю форму? - C++ Builder
Вот таймер на одной форме , как сделать чтобы по нажатию batton таймер запускался на 2 й форме #include <vcl.h> #pragma hdrstop ...

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

Прервать цикл - C++ Builder
Доброго вечера... появилась задача - есть код for(ptrdiff_t i = 0; i < ptrdiff_t(Memo1->Lines->Count); i++) { ...

Прервать действие функции - C++ Builder
Здравствуйте. Требуется, при достижении определенного условия, уточню, if (size<5), прервать действие функции, ну и вообще программы. То...


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

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

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