Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi 7] Проблемы с внедрением Timer'а


Автор: Morgenstern 9.7.2007, 16:39
В общем такая ситуация - у меня программа тест. Есть 20 форм(с вопросами и ответами), мне необходимо сделать так, что бы каждая форма сменяла друг друга каждые две минуты, если пользователь не ответит на вопрос теста. При этом время на размышления должно составлять точно 2 мин. Если пользователь не отвечает - прога переходит к другому вопросу. Всё просто. Но я не могу понять, как этот таймер туда вставить? Что необходимо написать и к какой кнопке это всё присвоить?
С таймером я никода не работала - и не могу понять, когда его сделать true, а когда false? Да вообще - что с ним делать?

пысы: если кто посоветует хелп читать знайте- нет его в моей версии делфи! нет!

Автор: lukas 9.7.2007, 16:54
У таймера есть событие которое срабатывает через одинаковый отрезок времени (интервал), (2 мин = 120 000 ). Можно обойтись одним таймером (например разместить его на главной форме), и объявить глобальную переменную (например vop:integer). Когда мы начинаем тест, открывается первый вопрос, и запускается таймер. Когда произойдет событие таймера, увеличиваем vop на 1. И в этом же событии ставим условия, если vop = 1 ... вопрос1, если vop = 2 ... вопрос2 .....
vop =  N ... вопросN. Думаю дальше ясно что делать.

Автор: Morgenstern 10.7.2007, 14:29
Цитата

открывается первый вопрос, и запускается таймер.

lukas, а как это в коде описать?? Ну например что, где и в какой процедуре писать?  smile 

Автор: mr.Anderson 10.7.2007, 16:38
Morgenstern, запуск таймера осуществляется через задание свойства Enabled (включен ли) в True. Соответственно, если мы не хотим, чтобы таймер работал СРАЗУ после запуска приложения, то во время проектирования программы это свойство надо отключить.

На всякий случай пишу, как включить таймер:
Код

Timer1.Enabled := True;

Автор: lukas 11.7.2007, 22:04
Morgenstern, 

процедура OnTimer...  smile 

ну вот что-то вроде этого:

Код


var
vop : integer = 1;

...
...
procedure TForm1.OnTimer(Sender:TObject);
begin
case vop of
1: /// запускаем вопрос 1
2: /// запускаем вопрос 2
...
...
n: /// запускаем вопрос n
end;
vop := vop +1;
end;

Автор: mr.Anderson 12.7.2007, 11:39
Цитата
нет его в моей версии делфи! нет!

А на такие случаи есть гугл, поиск по форуму, MSDN и RSDN.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)