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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2010, 14:49   #1
ZARO
Пользователь
 
Регистрация: 11.03.2010
Сообщений: 17
По умолчанию [Вопрос] Как определить прогресс таймера?

У меня появился вопрос, как сделать так, что бы на label1 выводился прогресс таймера в секундах? Сперва попробывал свойство Interval,а оно отвечает за то, что через какое время будет выполнятся процедура. Помогите плиз реализовать это!
ZARO вне форума Ответить с цитированием
Старый 11.03.2010, 14:53   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Двумя таймерами. Один - с секундным интервалом, будет "шлепать" в лэйбл секунды, пока второй (основной) его не остановит...
mihali4 вне форума Ответить с цитированием
Старый 11.03.2010, 14:55   #3
Deamonig
Форумчанин
 
Аватар для Deamonig
 
Регистрация: 19.09.2009
Сообщений: 166
По умолчанию

Заведи переменную Int64 и в таймере при каждой итерации добавляй к ней Timer1.Interval затем выводи ее в Label1. Но также чти что данное число это миллисекунды
Deamonig вне форума Ответить с цитированием
Старый 11.03.2010, 15:09   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
uses DateUtils;
.....
var t:tdatetime;
procedure TForm1.FormCreate(Sender: TObject);
begin
 t:=StrToTime('00:00');
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 t:=IncSecond(t);
 label1.Caption:=formatdatetime('hh:nn:ss',t)
end;
SERG1980 вне форума Ответить с цитированием
Старый 11.03.2010, 15:19   #5
ZARO
Пользователь
 
Регистрация: 11.03.2010
Сообщений: 17
По умолчанию

Ок, всем спс, разобрался с секундами, но не получается выводить милисекунды, сделал так:



Код:
procedure TForm4.Timer1Timer(Sender: TObject);
begin
kol:=kol+Timer1.Interval;
Label1.Caption:= FloatToStr(kol);
end;

т.е. я хотел чтобы к переменной kol каждую милискекунду прибавлялось значение 1. И потом оно выводилось в лейбл, но почему-то, когдая сравнил с обычными часами, мой таймер слишком запаздывал. Помогите плиз, мб ктонить напишите код.
ZARO вне форума Ответить с цитированием
Старый 11.03.2010, 15:21   #6
ZARO
Пользователь
 
Регистрация: 11.03.2010
Сообщений: 17
По умолчанию

Цитата:
Сообщение от SERG1980 Посмотреть сообщение
Код:
uses DateUtils;
.....
var t:tdatetime;
procedure TForm1.FormCreate(Sender: TObject);
begin
 t:=StrToTime('00:00');
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 t:=IncSecond(t);
 label1.Caption:=formatdatetime('hh:nn:ss',t)
end;
Аа. всё! Биг спс, терь можешь плиз объяснить что такое t:=IncSecond(t);

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Уважайте форумчан, и они ответят вам взаимностью...
Модератор

Последний раз редактировалось mihali4; 11.03.2010 в 15:40.
ZARO вне форума Ответить с цитированием
Старый 11.03.2010, 15:27   #7
BioHEX
Пользователь
 
Аватар для BioHEX
 
Регистрация: 04.01.2010
Сообщений: 17
По умолчанию

функция IncSecond увеличивает значение t на 1 секунду
BioHEX вне форума Ответить с цитированием
Старый 11.03.2010, 15:34   #8
ZARO
Пользователь
 
Регистрация: 11.03.2010
Сообщений: 17
По умолчанию

Цитата:
Сообщение от BioHEX Посмотреть сообщение
функция IncSecond увеличивает значение t на 1 секунду
Т.е. миллисекунды тоже прибавляются?

Прекращайте ненужное цитирование предыдущих сообщений!
Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
А кроме кнопки "Цитата" внизу есть простое окно для ввода своего сообщения.
Или маленькая правая кнопочка "Быстрый ответ" справа от кнопки "Цитата".
Попадаете туда же.
Модератор

Последний раз редактировалось mihali4; 11.03.2010 в 15:39.
ZARO вне форума Ответить с цитированием
Старый 11.03.2010, 15:52   #9
BioHEX
Пользователь
 
Аватар для BioHEX
 
Регистрация: 04.01.2010
Сообщений: 17
По умолчанию

Ну 1 секунда, это и есть 1000 милисекунд. А отоброжать милисекунды нет смысла иначе за секунду label будет обновляться тысячу раз. Да и таймер который обрабатывает событие каждую милисекунду создать невозможно.

Последний раз редактировалось BioHEX; 11.03.2010 в 16:00.
BioHEX вне форума Ответить с цитированием
Старый 11.03.2010, 16:48   #10
Alt
Лжец и смутьян
Форумчанин
 
Аватар для Alt
 
Регистрация: 03.04.2009
Сообщений: 194
По умолчанию

Цитата:
Сообщение от BioHEX Посмотреть сообщение
Ну 1 секунда, это и есть 1000 милисекунд. А отоброжать милисекунды нет смысла иначе за секунду label будет обновляться тысячу раз. Да и таймер который обрабатывает событие каждую милисекунду создать невозможно.
Почему? Там же интервал в милисекнудах указывается...
Помогли тебе - помоги другому.
Alt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отсрочка таймера Lifefine Общие вопросы Delphi 4 15.01.2010 03:39
список и прогресс бар Temka Общие вопросы Delphi 1 02.06.2009 12:20
После нажатия старт идёт типа прогресс и отправляет скачать полную версию программы aminov Фриланс 13 28.07.2008 16:34
использование таймера KancJler Помощь студентам 13 19.04.2008 01:13
Прогресс закачки mish666 Работа с сетью в Delphi 7 21.01.2008 15:50