![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание точного таймера до сотых секунды
EugeneXP © (2007-07-18 15:52:00)Есть несколько вопросов на эту тему. Пытался чего-нито найти... Но того, что нужно нет...
Задача: Вводиться время формата 10:99 (секунды : десятые и сотые секунды)
необходимо реализовать функцию по истечению времени.
Пытался сделать с помощью таймера... Но таймер только с интервалом 1000 работает реально, т.е. секунда по продолжительности как секунда... с меньшими интервалами (10, 100) секунды либо меньше, либо длинней.... Пришел в тупик.
Вопрос: как правильно будет создать такой таймер (часы).
Второй вопрос с отображением... есть стандартный формат отображения FormatDateTime('HH:MM:SS',Time); а как реализовать секунды и мл....???
Пробовал найти подобную весч в и-нете... ничего... но полюбому это создавали десятки раз!
Подскажите, если есть у кого какие-нибудь мысли.
Спасибо!
Loginov Dmitry (2007-07-19 08:06:00) [1]На тебе таймер-часы:
procedure TTimerForm.FormCreate(Sender: TObject);
begin
Timer1.Interval := 1;
end;
procedure TTimerForm.Button1Click(Sender: TObject);
begin
StartTime := Time + 1 / 24 / 60 / 60 * 10; {10 sec}
Timer1.Enabled := True;
end;
procedure TTimerForm.Timer1Timer(Sender: TObject);
var
TimeValue: TTime;
begin
TimeValue := StartTime - Time;
if TimeValue < 0 then
begin
TimeValue := 0;
Timer1.Enabled := False;
end;
Label1.Caption := FormatDateTime('hh:nn:ss:zzz', TimeValue)
end;
Германн (2007-07-19 01:26:00) [2]
> EugeneXP (19.07.07 01:22) [11]
>
> Ну, то, что через черточку - в курсе )))
>
> Сейчас просто пробую на основе стандартного таймера делфи
> реализовать обратный отсчет времени секунд и милисекунд
> и выводить так как это должно быть (SS.ZZZ)...
> хочу посмотреть, что получиться
>
> не знаю может неправильным путем пошел
>
Именно неправильным.
Стандартный таймер (но не Дельфи, а Windows) имеет разрешение 55мс для 9х и 10мс для NT.
EugeneXP (2007-07-19 01:22:00) [3]Ну, то, что через черточку - в курсе )))
Сейчас просто пробую на основе стандартного таймера делфи реализовать обратный отсчет времени секунд и милисекунд и выводить так как это должно быть (SS.ZZZ)...
хочу посмотреть, что получиться
не знаю может неправильным путем пошел, но подскажите
как переменную TTime уменьшить на 1 мсек или на другую величину?
мне пришло в голову со строками заморчиваться... но это как сложно и глупо получиться...
Германн (2007-07-19 01:06:00) [4]
> Пробовал найти подобную весч в и-нете... ничего... но полюбому
> это создавали десятки раз!
>
Но не в Windows.
P.S. По-любому пишется через чёрточку :)
EugeneXP (2007-07-18 23:36:00) [5]Спасибо за ценные ответы!!! =))
icWasya (2007-07-18 17:45:00) [6]FormatDateTime('HH:MM:SS .ZZZ',Time);
Ega23 (2007-07-18 17:19:00) [7]
> надо брать другую операционную систему.
Другая операционка тоже гарантии не даст.
palva (2007-07-18 17:18:00) [8]Если для дела, а не для забавы, то надо брать другую операционную систему.
Сергей М. (2007-07-18 17:17:00) [9]
> Strange man
рекомендую прекратить давать идиотские утверждения и рекомендации.
Strange man (2007-07-18 16:50:00) [10]Используй функции TimeSetEvent и TimeKillEvent. Они наиболее точные и поддерживаются всеми процессорами.
Ega23 (2007-07-18 16:33:00) [11]
> Вопрос: как правильно будет создать такой таймер (часы).
Никак. 100% гарантии тебе никто не даст.
Amoeba (2007-07-18 16:15:00) [12]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=434
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=455
Сергей М. (2007-07-18 16:02:00) [13]
> EugeneXP (18.07.07 15:52)
Ты осознаешь, что Windows НЕ является ОС реального времени ?
Или тебе по барабану ?)