Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 17.03.2007, 18:24   #1
Lonix
Пользователь
 
Регистрация: 17.03.2007
Сообщений: 39
По умолчанию Определенное время

Как сделать так чтобы через каждые 30 минут выполнялось какое нибудь действие, например выводилось сообщение в label?




Заранее спасибо!
Lonix вне форума Ответить с цитированием
Старый 17.03.2007, 18:44   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

var t: TTime;
...............

В нужный момент фиксируем время начала отсчета:
t:=Now;
//момент начала отсчета
и запускаем TTimer с установленным интервалом в 1 минуту.

В событии OnTimer проверяем, не превысило ли текущее время (Now) наше ранее зафиксированное в переменной t более, чем на 30 мин., т.е. разницу Now-t.
Если да, то выводим
Label1.Caption:='Прошло еще полчаса';
и устанавливаем новое
t:=Now;

Все.

P.S.
Подробнее уже некуда, пора и самому "рогом пошевелить"

Последний раз редактировалось mihali4; 17.03.2007 в 21:18.
mihali4 вне форума Ответить с цитированием
Старый 17.03.2007, 19:48   #3
Lonix
Пользователь
 
Регистрация: 17.03.2007
Сообщений: 39
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
var t: TTime;
...............

В нужный момент фиксируем время начала отсчета:
t:=Now;
//момент начала отсчета
и запускаем TTimer с установленным интервалом в 1 минуту.

В событии OnTimer проверяем, не превысило ли текущее время (Now) наше ранее зафиксированное в переменной t более, чем на 30 мин., т.е. разницу Now-t.
Если да, то выводим
Label1.Caption:='Прошло еще полчаса';
и устанавливаем новое
t:=Now;

Все.

А можно по подробнее это все расписать, а то я новичек в этом деле... Если конечно не составит труда
Lonix вне форума Ответить с цитированием
Старый 17.03.2007, 21:46   #4
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Это засунь в таймер, интервал поставь в 60000
var t:TDateTime;
begin
if (now-t)>strtoTime("0:30:00") then
begin
t:=now;
//то, что тебе надо сделать
end;
end;

Последний раз редактировалось zetrix; 17.03.2007 в 21:49.
zetrix вне форума Ответить с цитированием
Старый 17.03.2007, 22:17   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Все верно, только t - не таймерская, а глобальная переменная...
Верно?
А то получилось немного непонятно и он может ее засунуть в OnTimer...

Последний раз редактировалось mihali4; 17.03.2007 в 22:26.
mihali4 вне форума Ответить с цитированием
Старый 17.03.2007, 22:28   #6
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 15,756
По умолчанию

Так. вот этот код самый простой.

вот код
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.Caption:='30 минут';
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
label1.Caption:='30 секунд';
end;

end.
вот исходник. для примера есть 30 секундный таймер, он 2.
Вложения
Тип файла: rar время.rar (3.6 Кб, 21 просмотров)
Alar вне форума Ответить с цитированием
Старый 17.03.2007, 22:47   #7
Lonix
Пользователь
 
Регистрация: 17.03.2007
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
Так. вот этот код самый простой.

вот код
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.Caption:='30 минут';
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
label1.Caption:='30 секунд';
end;

end.
вот исходник. для примера есть 30 секундный таймер, он 2.
этот пример не работает, показывет все время 30 минут и на доли секундах показывает 30 секунд.
Lonix вне форума Ответить с цитированием
Старый 17.03.2007, 22:59   #8
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 15,756
По умолчанию

Lonix, нужно запустить исходный код ничего не меняя. через 30 секунд появиться надпись - 30 секунд.
Alar вне форума Ответить с цитированием
Старый 17.03.2007, 23:07   #9
Lonix
Пользователь
 
Регистрация: 17.03.2007
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
Lonix, нужно запустить исходный код ничего не меняя. через 30 секунд появиться надпись - 30 секунд.


Все равно нет такого результата чтобы через определенное время допустим 30 секунд выполнялось одно и тоже действие и выполнялось оно все время
Lonix вне форума Ответить с цитированием
Старый 17.03.2007, 23:18   #10
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 15,756
По умолчанию

Lonix, сделал вообще просто и время сделал 5 и 7 секунд, чтобы совсем понятно стало.
Вложения
Тип файла: rar время 2.rar (9.5 Кб, 30 просмотров)
Alar вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определенное число установок..??? PONKA Безопасность, Шифрование 4 07.06.2008 07:02
Как к какой либо букве привезать определенное действие? LuMax Помощь студентам 4 25.11.2007 14:06
Какие знаения нужно сложить, чтобы получилось определенное число Natalia K. Microsoft Office Excel 4 23.11.2007 13:22
как под структуру типа MSG выделить строго определенное количество байт? Morskoivolk Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 03.04.2007 19:12
как сделать, чтобы в определенное время появлялось новое окно Alar Общие вопросы Delphi 0 29.10.2006 20:30


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS