|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Хелп,плиз чайнику!Очень срочно!
Проблема такая:
Я хочу создать приложение с тестами,12 вопросов и 4 варианта ответа в RadioGroup, но чтобы было ограничение во времени 5 мин (на весь тест) после которых новые ответы не принимаются и выводится результат.Хелп плиз! |
#2
|
|||
|
|||
Можно так...
Код:
procedure TForm1.Timer1Timer(Sender: TObject); var i:byte; begin timer1.interval:=1000; i:=i+1; if i=300 then begin application.messagebox('Время вышло!','Ошибка',0); Timer1.Destroy; {Далее можно пройтись циклом по всем радиобуттонам и задать им свойсто Enabled:=false} end; end; |
#3
|
||||
|
||||
Ставишь TTimer на 5 мин (в милисекундах) и делаешь выход с теста по истечении этого времени!
Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#4
|
|||
|
|||
Цитата:
Спасибо,смысл я понял, но как мне сделать так, чтоб таймер включался с нажатием кнопки Button1? (То есть как procedure TForm1.Timer1Timer(Sender: TObject); вставить в procedure Button1.Click(Sender: TObject); ? |
#5
|
||||
|
||||
В таймере есть свойство Enable;
Вот его и используй по нажатию кнопки ! Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#6
|
||||
|
||||
Зачем его вставлять в код? У таймера есть свойство Enabled. Если стоит True, то таймер выполняет процедуру OnTimer у таймера, если False, то таймер выключен. В твоём случае в OnClick у Button пиши следующее:
Код:
Timer1.Enabled:=True |
#7
|
||||
|
||||
To Yurk@
Опередил ) |
#8
|
|||
|
|||
ГЛАВНЫЙ КУСОК КОДА
procedure TMainForm.testClick(Sender: TObject); var name i: integer; p:byte; begin Timer1.Enabled := True; timer1.interval:=1000; i:=i+1; if i=10 then begin if radiobutton3.Checked then p:=p+1; if radiobutton8.Checked then p:=p+1; if radiobutton11.Checked then p:=p+1; if radiobutton16.Checked then p:=p+1; if radiobutton18.Checked then p:=p+1; if radiobutton24.Checked then p:=p+1; if radiobutton27.Checked then p:=p+1; if radiobutton29.Checked then p:=p+1; if radiobutton36.Checked then p:=p+1; if radiobutton37.Checked then p:=p+1; if radiobutton41.Checked then p:=p+1; if radiobutton47.Checked then p:=p+1; RadioGroup1.Enabled := False; RadioGroup2.Enabled := False; RadioGroup3.Enabled := False; RadioGroup4.Enabled := False; RadioGroup5.Enabled := False; RadioGroup6.Enabled := False; RadioGroup7.Enabled := False; RadioGroup8.Enabled := False; RadioGroup9.Enabled := False; RadioGroup10.Enabled := False; RadioGroup11.Enabled := False; RadioGroup12.Enabled := False; application.messagebox('Время вышло!','Ошибка',0); Timer1.Destroy; end; end; я написал программу компайл проходит, но через 10 сек меседж бокс не появляется... |
#9
|
|||
|
|||
Ладно...ты не правильно понял!
В Delphi, во вкладке System есть картинка, на котррой нарисованы часы. нажимаешь одни раз на нее, а потом в любое метсто на форме. на форме появится такой же рисунок(компонент) как из вкладки system. на него нажимешь два раза левой кнопкой мыши и пишешь то, то я тебе написал! В свойствах Timer'a ставишь enabled:=false и при нажатии на кнопку(в процедуре) пишешь следующее: Код:
Timer1.enabled:true; //после чего пишешь все "запреты" на использование теста! |
#10
|
|||
|
|||
Можешь еще на форму добавить label и тогда в процедуру таймера добавь строку
Код:
label1.caption:='Прошло секунд: '+inttostr(i); Последний раз редактировалось ~ SaM ~, 13.12.2007 в 23:36. |
#11
|
|||
|
|||
Да, кстати... Не понял прикола!
Цитата:
И после: Цитата:
В таймере устанавливается интервал в милисекундах. 1 секунда = 1000 милисекундам! |
#12
|
|||
|
|||
Цитата:
Да, в коде интервал 1000мсек (1 сек),это время,через которое счётчик +1,надо было проверить работает ли таймер чтоб не ждать 5 мин я поставил 10 сек и ничего не вышло... |