Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
33 / 58 / 13
Регистрация: 26.05.2011
Сообщений: 756
1

Timer

11.05.2012, 22:19. Показов 1337. Ответов 15
Метки нет (Все метки)

привет всем. есть 1 таймер для подсчета времени работы проги. есть label, в который загружается время установленного лимита.
помогите пж отнять время от установленного лимита.
необходимо чтобы от установленного лимита отнималось время которое работает прога.
Изображения
 
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2012, 22:19
Ответы с готовыми решениями:

Запуск/остановка таймера при вводе в Edit команд Timer Start/Timer Stop
Суть вот в чём на форме есть таймер который выполняет обратный отсчёт и есть Edit, задача вот...

Timer
При нажатии на кнопку Button включается таймер. В обработчике события OnTimer компонента Timer с...

Timer
Здравствуйте, мне надо сделать секундомер, который воспроизводит wav-файл на 3 минуте, 4, 7 и...

Timer
Помогите,пожалуйста, с программой. Необходимо,чтобы при появлении на экране изображения, начинался...

15
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
11.05.2012, 22:37 2
Цитата Сообщение от shilovec5377 Посмотреть сообщение
необходимо чтобы от установленного лимита отнималось время которое работает прога.
обратный отсчет что ли?
1
33 / 58 / 13
Регистрация: 26.05.2011
Сообщений: 756
11.05.2012, 22:47  [ТС] 3
ну да. надо чтобы от (осталось времени) отнималось ( время в сети)
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
11.05.2012, 23:31 4
не знаю правильно понял или нет
Delphi
1
t:TDateTime;
Delphi
1
2
3
4
5
6
7
8
procedure TForm1.Timer1Timer(Sender: TObject);
var w:TDateTime;
begin
w:=IncMinute(w,60);
t:=IncSecond(t);
Label1.Caption:=TimeToStr(t);
Label2.Caption:=TimeToStr(w-t);
end;
в Label1 выводится время сколько работает программа
в Label2 выводится обратный отсчет от часа (час или не час нужен, это уж сам смотри)

P.S.
в uses DateUtils
1
33 / 58 / 13
Регистрация: 26.05.2011
Сообщений: 756
12.05.2012, 00:28  [ТС] 5
вот процедура

Delphi
1
2
3
4
5
6
procedure Ostalos;
 
  begin
    label2.Caption := String(Integer(LOgr[2]) - Integer(Hour)) + ' ч. : ' + String(Integer(LOgr[3]) - Integer(Min)) + ' мин.';
  
end;
String(Integer(LOgr[2]) и String(Integer(LOgr[3]) - это время из (осталось времени)
но она у меня чего-то не отнимает.
0
13074 / 5859 / 1706
Регистрация: 19.09.2009
Сообщений: 8,807
12.05.2012, 09:00 6
Ребята, желательно всё-таки TTimer не применять для отсчёта интервалов. Он весьма неточно отмеряет - по его тикам время может очень значительно забегать вперёд или отставать. На больших интервалах это особенно заметно. TTimer лучше применять для другой цели - для обновления данных на форме. А сам отсчёт времени сделать синхронизированным с системными часами.
Пример таймера с обратным счётом.
1
33 / 58 / 13
Регистрация: 26.05.2011
Сообщений: 756
12.05.2012, 18:16  [ТС] 7
по вашему примеру я вместо Edit1.Text, могу поставить свой Label (осталось времени)?
Delphi
1
Period := StrToInt(Edit1.Text) / (24 * 60 * 60);
Добавлено через 1 час 8 минут
а как можно сделать, чтобы не вводить в edit количество секунд, а чтобы отнимало от label в котором есть (00:02:03). это вообще возможно.
помогите пж.

Добавлено через 6 часов 6 минут
это вообще возможно или нет?
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
12.05.2012, 18:22 8
shilovec5377, я же тебе дал пример, там отнимается от часа, делай то же самое только только отнимай от своего времени
0
33 / 58 / 13
Регистрация: 26.05.2011
Сообщений: 756
12.05.2012, 20:19  [ТС] 9
так у меня время может быть разное.
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
12.05.2012, 20:43 10
что значит разное, какое задашь, час, два ....
0
13074 / 5859 / 1706
Регистрация: 19.09.2009
Сообщений: 8,807
12.05.2012, 21:07 11
Цитата Сообщение от shilovec5377 Посмотреть сообщение
по вашему примеру я вместо Edit1.Text, могу поставить свой Label (осталось времени)?
Если заданный интервал в TLabel записан, тогда вот так надо преобразовать:
Delphi
1
  Period := StrToTime(Label1.Caption);
1
33 / 58 / 13
Регистрация: 26.05.2011
Сообщений: 756
12.05.2012, 22:16  [ТС] 12
как можно сделать, чтобы вместо вашего "w:=IncMinute(w,60);" (60) --- часы:минуты:секунды брались из label.

Добавлено через 1 минуту
но в label у меня сохранено так (02:01:04)

Добавлено через 8 минут
спасибр всем за ответы и что помогли разобраться по написанию примера.


тема закрыта
0
Мишка Косолапый :)
284 / 254 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
12.05.2012, 22:22 13
не могли бы ещё мне вопрос помоч? Как сделать без таймеров задержку в коде.
ну например выполняешь цикл
Delphi
1
2
a:=f+1;
f:=4;
А тут нужно подождать 0,1 секунды и идти дальше:
Delphi
1
2
g:=43;
r:=g-3;
0
13074 / 5859 / 1706
Регистрация: 19.09.2009
Сообщений: 8,807
12.05.2012, 22:31 14
Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
А тут нужно подождать 0,1 секунды и идти дальше
Delphi
1
Sleep(100); //Задержка текущего потока на 100 миллисекунд = 0.1 секунды.
1
Мишка Косолапый :)
284 / 254 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
12.05.2012, 23:01 15
Спасибо!

Добавлено через 11 минут
А если в 1 таймере затормозить на 0,1 сек то 2-ой таймер же будет работать да?
И ещё:
Если поставить в sleep(i) i=0 то все будет работать хорошо? Чтобы регулировать переменной это.
0
13074 / 5859 / 1706
Регистрация: 19.09.2009
Сообщений: 8,807
13.05.2012, 04:58 16
Процедура Sleep() приостанавливает на заданное время выполнение того потока, в котором она вызвана. На работу таймеров такие остановки никак не влияют. На самом деле таймеры создаются не в программе, а в операционной системе. И их работа никак не зависит от режима работы программы. Таймеры, созданные в системе, с заданной периодичностью шлют программе сообщения. Внутри программы эти сообщения обрабатывают компоненты типа TTimer. Может оказаться так, что предыдущее сообщение от таймера программа ещё не обработала, а от таймера уже пришло следующее сообщение. В этом случае сообщения накапливаются в очереди сообщений приложения и обрабатываются последовательно.
Кроме этого, надо иметь в виду, что системные таймеры, которые создаются при работе экземпляров типа TTimer имеют дискретность около 55 миллисекунд. Это значит, что таймер не может отмерять интервалы меньшие, чем 55 миллисекунд.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2012, 04:58

Mm timer
Добрый день.Имеется mmtimer1 ,он выполняет в заданном интервале действие через geticount.У меня...

Timer
Кто может помочь сделать задание, а то что-то не очень понятно... Вот условие заданий: • Вывести...

Timer
Всем привет, нужна помощь!:cry: Есть ли в Delphi 7 элемент схожий с TTimer? Суть в том что у меня...

Timer
Сдравствуйте!!! Прошу просветить меня работе с TTimer! Вот например засеч время и отображать это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.