Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Вниз

Создание точного таймера до сотых секунды   Найти похожие ветки 

 
EugeneXP   (2007-07-18 15:52) [0]

Есть несколько вопросов на эту тему. Пытался чего-нито найти... Но того, что нужно нет...

Задача: Вводиться время формата  10:99 (секунды : десятые и сотые секунды)

необходимо реализовать функцию по истечению времени.

Пытался сделать с помощью таймера... Но таймер только с интервалом 1000 работает реально, т.е. секунда по продолжительности как секунда... с меньшими интервалами (10, 100) секунды либо меньше, либо длинней.... Пришел в тупик.

Вопрос: как правильно будет создать такой таймер (часы).

Второй вопрос с отображением... есть стандартный формат отображения FormatDateTime("HH:MM:SS",Time); а как реализовать секунды и мл....???

Пробовал найти подобную весч в и-нете... ничего... но полюбому это создавали десятки раз!

Подскажите, если есть у кого какие-нибудь мысли.

Спасибо!


 
Сергей М. ©   (2007-07-18 16:02) [1]


> EugeneXP   (18.07.07 15:52)


Ты осознаешь, что Windows НЕ является ОС реального времени ?
Или тебе по барабану ?)


 
Amoeba ©   (2007-07-18 16:15) [2]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=434
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=455


 
Ega23 ©   (2007-07-18 16:33) [3]


> Вопрос: как правильно будет создать такой таймер (часы).


Никак. 100% гарантии тебе никто не даст.


 
Strange man   (2007-07-18 16:50) [4]

Используй функции TimeSetEvent и TimeKillEvent. Они наиболее точные и поддерживаются всеми процессорами.


 
Сергей М. ©   (2007-07-18 17:17) [5]


> Strange man


рекомендую прекратить давать идиотские утверждения и рекомендации.


 
palva ©   (2007-07-18 17:18) [6]

Если для дела, а не для забавы, то надо брать другую операционную систему.


 
Ega23 ©   (2007-07-18 17:19) [7]


> надо брать другую операционную систему.


Другая операционка тоже гарантии не даст.


 
icWasya ©   (2007-07-18 17:45) [8]

FormatDateTime("HH:MM:SS.ZZZ",Time);


 
EugeneXP   (2007-07-18 23:36) [9]

Спасибо за ценные ответы!!! =))


 
Германн ©   (2007-07-19 01:06) [10]


> Пробовал найти подобную весч в и-нете... ничего... но полюбому
> это создавали десятки раз!
>

Но не в Windows.

P.S. По-любому пишется через чёрточку :)


 
EugeneXP   (2007-07-19 01:22) [11]

Ну, то, что через черточку - в курсе )))

Сейчас просто пробую на основе стандартного таймера делфи реализовать обратный отсчет времени секунд и милисекунд и выводить так как это должно быть (SS.ZZZ)...
хочу посмотреть, что получиться

не знаю может неправильным путем пошел, но подскажите
как переменную TTime уменьшить на 1 мсек или на другую величину?

мне пришло в голову со строками заморчиваться... но это как сложно и глупо получиться...


 
Германн ©   (2007-07-19 01:26) [12]


> EugeneXP   (19.07.07 01:22) [11]
>
> Ну, то, что через черточку - в курсе )))
>
> Сейчас просто пробую на основе стандартного таймера делфи
> реализовать обратный отсчет времени секунд и милисекунд
> и выводить так как это должно быть (SS.ZZZ)...
> хочу посмотреть, что получиться
>
> не знаю может неправильным путем пошел
>

Именно неправильным.
Стандартный таймер (но не Дельфи, а Windows) имеет разрешение 55мс для 9х и 10мс для NT.


 
Loginov Dmitry ©   (2007-07-19 08:06) [13]

На тебе таймер-часы:


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;




Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.049 c
2-1183970865
Newser
2007-07-09 12:47
2007.08.12
тип поля - Дата/время


2-1184756653
ouchs
2007-07-18 15:04
2007.08.12
uses для функции PostVirtualKeyEvent


1-1181045623
Kolan
2007-06-05 16:13
2007.08.12
Какие могут быть причины не попасть в код потока после Resume?


3-1177679032
DelphiLexx
2007-04-27 17:03
2007.08.12
Как сделать, чтобы транзакция делала автоматичекси rollback


2-1184396614
Officeman
2007-07-14 11:03
2007.08.12
Как изравить от такого разделителя ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский