Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2011, 19:43   #1
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию работа с таймерами

вот сделал код который через 3 секунды выбивает сообщение "1", через 5 сообщение "2" и через 7 сообщение"3"
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
showmessage('1');
timer2.Enabled:=true;
timer1.Enabled:=false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.Enabled:=true;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
showmessage('2');
timer3.Enabled:=true;
timer2.Enabled:=false;
end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
showmessage('3');
timer1.Enabled:=true;
timer3.Enabled:=false;
end;
не пойму как сделать так чтобы сообщение не выбивалось через 3,5,7 секунд, а сначала выбилось а потом уже ждало 3, 5, 7сек. Помогите плиз
megostudent вне форума Ответить с цитированием
Старый 21.09.2011, 19:57   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Несмотря на то, что вот это мне не понятно:
Цитата:
не пойму как сделать так чтобы сообщение не выбивалось через 3,5,7 секунд, а сначала выбилось а потом уже ждало 3, 5, 7сек. Помогите плиз
общая суть понятна.
Во-первых, три таймера - не надо. Достаточно только одного таймера.
___________________

1.Объявите глобальную переменную seconds, которая будет показывать, сколько секунд прошло после запуска программы.

2. После запуска программы надо включить таймер (Time1.Enabled:=true).
3. В обработчике таймера делать так:
3.1 Если величина Seconds равна чему-то, то показывать сообщение. Эту операцию надо повторить только, сколько вам нужно.
3. Увеличить значение Secons на 1: Inc(Seconds)
Вадим Мошев вне форума Ответить с цитированием
Старый 21.09.2011, 20:18   #3
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию

смутно чтот я понял как это делать) суть того что я хочу сделать такова:
в таймере1 стоит интервал-3сек, таймере2 стоит интервал-5сек, в таймере3 стоит интервал-7сек, то есть через 3 секунды после включения программы выбивается сообщение с текстом "1" и т.д. мне нужно чтобы при включении программы сообщение с текстом "1" выбивалось сразу и ждало 3 сек. и т.д.
megostudent вне форума Ответить с цитированием
Старый 21.09.2011, 20:21   #4
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Накой шиш тебе аж целых ТРИ таймера ?
Всё это расчудесно делается и с помощью одного-единственного с периодом тиков 1 сек
mss вне форума Ответить с цитированием
Старый 21.09.2011, 20:24   #5
Kristian
Пользователь
 
Регистрация: 14.12.2010
Сообщений: 24
По умолчанию

В вар добавь
Код:
    r,z:integer;
Код:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
//Чтобы работал нормально в OnCreate пишите r:=1; и z:=0;
r:=r+2; //1+2=3    3+2=5  5+2=7
ShowMessage(IntToStr(r));
z:=r*1000; //Делаем секунды в милисекунды
Timer1.Interval:=z;  //Дадим интервал
if r=7 then timer1.enabled:=false; //Если вы достигли нужной цели то таймер отключаеться
end;
Только что пробовал , работает
Может я не понел что должна делать программа но думаю я не ощибался!

Последний раз редактировалось Kristian; 21.09.2011 в 20:27.
Kristian вне форума Ответить с цитированием
Старый 21.09.2011, 21:57   #6
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию

слушай
Вложение 42706
и возьмите во внимание что в сообщение могут выскакивать не только "1,2,3" а например слова "йцу,фыв,ячс" или всемто сообщения может идти другое действие главное чтобы сначало прошло действие, а потом прошел отчет времени (3 сек.), после отчета времени (3 сек) сделалось 2 действие (сообщение с текстом "2") и прошло 5 сек , а потом уже после 5 сек. сработало 3 действие прошло 7 сек. и все пошло опять на первое действие.
вот такой цикл. Помогите
megostudent вне форума Ответить с цитированием
Старый 21.09.2011, 22:19   #7
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
слушай
вот так.
ЗАЧЕМ куча таймеров ?

"Мне надо" - это не объяснение, это блажь.

Один и тот же таймер в событии своего срабатывания можно перепрограммировать на очередное срабатывание через другой требуемый интервал времени.
mss вне форума Ответить с цитированием
Старый 21.09.2011, 22:48   #8
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию

Цитата:
Сообщение от mss Посмотреть сообщение
"Мне надо" - это не объяснение, это блажь.
в моем понимание это как я хочу сделать, если бы это была блажь, то я бы никаких кодов сюда не прикреплял, а прямо написал бы.

привел бы пример один если так все хорошо понимаешь и я бы понял и поставил те +
megostudent вне форума Ответить с цитированием
Старый 21.09.2011, 22:58   #9
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
это как я хочу сделать
Вот я и спрашиваю, ЗАЧЕМ ты хочешь именно ТРИ таймера, если программирование очередной выдержки времени (т.е. запрет работы таймера. установка нужного интервала и разрешение работы таймера) для некоего таймера можно сделать прямо в его же обработчике, непосредственно перед этим сделав нужное "действие", например, "выбив" какую-нибудь "выскакивалку" - "1,2,3" или "слова "йцу,фыв,ячс" ?)
mss вне форума Ответить с цитированием
Старый 21.09.2011, 23:17   #10
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию

я делаю с 3 таймерами потому что я не знаю как сделать это в одном(
megostudent вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с таймерами. функция clock() thomson Общие вопросы C/C++ 9 27.05.2010 18:49
Блок-схема программы с таймерами BigQuestion Помощь студентам 2 07.04.2010 11:04
C++ проблема с таймерами ManInBlack Помощь студентам 0 25.12.2009 19:41
Помогите с таймерами C++ liosha Win Api 1 25.10.2009 10:44
Работа с таймерами Mr. Demetrius JavaScript, Ajax 7 16.03.2008 22:29