007wan |
Отправлено: 05 Декабря, 2017 - 16:50:38
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Понадобится: диалог с кнопкой, таймер.
Принцип работы: При запуске таймер не запущен. Как только нажали кнопку таймер запускается, идет отсчет (10, 9, 8, 7, 6...0) . Если это время вышло, то кнопку обнуляем, таймер вырубаем, время обнуляем(т.е оно станет первоначальным"10"). Если время не вышло, то отсчет будет на кнопке, либо просто textout'ом.
PS.Понимайте дело не в том, что я не могу создать диалог, кнопку, сделать таймер, а в том, что я не могу сделать скрипт с отсчетом, уже было пару скриптов, пробовал их переделывать, но всё плохо, бомбить начало. даже темы были такие, я смотрел и ничего не работает. |
|
|
Zireael |
Отправлено: 05 Декабря, 2017 - 17:21:30
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Спойлер (Отобразить)CODE:int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];
int count=10;
pos_size_button0[0][0]=7; pos_size_button0[0][1]=6; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
text_button0[0]="10";
//////////
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
//////////
showdialog(0, "Диалог", 835, 390, 136, 61, 1, 1);
//////////
loop()
{
if(flag_button0[0] > 0) // если нажата кнопка
{
flag_button0[0] = 0; // обнуляем флаг кнопки
enabletimer(0); // включаем таймер
}
sleep(100);
}
CREATE_TIMER(0, 1000)
{
if(count > 0)
{
count=count-1;
text_button0[0]=format(count);
}
else // если время вышло
{
count=10;
text_button0[0]=format(count);
disabletimer(0); // отключаем
}
} |
|
|
Kibor |
Отправлено: 05 Декабря, 2017 - 17:45:43
|
Эксперт
Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Zireael Так будет вернее. Так как кроме счетчика надо сделать что бы пока счетчик идет нажатие больше не отрабатывалось.
Проверить это можно так:
Цитата: loop()
{
if(flag_button0[0] > 0) // если нажата кнопка
{
flag_button0[0] = 0; // обнуляем флаг кнопки
beep(1000, 100);
enabletimer(0); // включаем таймер
}
sleep(100);
}
CODE:int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];
int count=10;
pos_size_button0[0][0]=7; pos_size_button0[0][1]=6; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
text_button0[0]="10";
//////////
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
//////////
showdialog(0, "Диалог", 835, 390, 136, 61, 1, 1);
//////////
loop()
{
if(flag_button0[0]==1) // если нажата кнопка
{
flag_button0[0]=1000;
beep(1000, 100);
enabletimer(0); // включаем таймер
}
sleep(100);
}
CREATE_TIMER(0, 1000)
{
if(flag_button0[0]>999)
{
count=count-1;
if (count==-1)
{
count=10;
flag_button0[0] = 0; // обнуляем флаг кнопки
disabletimer(0); // отключаем
}
text_button0[0]=format(count);
}
} |
|
|
007wan |
Отправлено: 05 Декабря, 2017 - 17:52:31
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Kibor пишет: Может то решение что выше привел поможет?
да помогло. просто это уже о другом
(Добавление)
CODE:external(INT, "GetKey", "GetKeyState", "user32.dll");if (GetKey(13)==1)
{
flag_button20[0]=1;
}
Нашел! |
|
|
|