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

Вниз

как узнать, сколько осталось времени до события onTimer   Найти похожие ветки 

 
Alex732   (2004-02-11 11:01) [0]

Подскажите, Subj...

Есть таймер... по событию таймера onTimer отрабатывает определенная процедура... Хочу выводить, сколько времени осталось до события примерно в таком виде: Panel1.Caption := "Отключение произойдет через 10 секунд"
Как вычислить, сколько осталось времени?


 
alex_***   (2004-02-11 11:11) [1]

панель обновлять не постоянно же надо? -> обновлять по еще одному таймеру, где отсчитывать сколько времени осталось


 
Fay   (2004-02-11 11:12) [2]

Круто! 8)


 
alex_***   (2004-02-11 11:23) [3]

ну можно отлавливать OnIdle, отсчитывать сколько времени осталось до очередного срабатывания, запоминать время обработки OnIdle и если прошла секунда с последнего события - обновить панель.
как-то так, на мой взгляд.


 
alex732   (2004-02-11 11:26) [4]

Зачем еще один таймер? Вычислили скока осталось, а потом Panel1.Caption := "Отключение произойдет через " + Sec_ + " секунд";


 
alex_***   (2004-02-11 11:29) [5]

когда вычислили? когда пришло последнее событие от таймера?


 
Amoeba + PVOzerski   (2004-02-11 11:35) [6]

В событие OnTimer вставить GetTickCount, сохранять результат. Таким образом, в любой момент мы можем узнать две вещи: интервал таймера и время на момент предыдущего события onTimer. Остальное очевидно.


 
alex732   (2004-02-11 11:38) [7]

Всем спасибо... Проблема устранена :-) Сделал следующим образом:

procedure TConnec.FormActivate(Sender: TObject);
begin
i := 10
Timer1.Interval := 1000;
Timer1.Enabled := true;
end;

procedure TConnec.Timer1Timer(Sender: TObject);
begin
i := i - 1;
Panel1.Caption := "Отключение произойдет через " + inttostr(i) + " секунд";
if i = 0 then
begin
Timer1.Enabled := false;
.... процедура, которая должна отработать ....
end;
end;


 
alex_***   (2004-02-11 11:44) [8]

блин... а в чем проблема-то была? я-то думал что таймер у тебя раз минуту или там в 10 мин. срабатывал и нужно было узнать сколько времени осталось до след. срабатывания...

p.s.

procedure TConnec.FormActivate(Sender: TObject);
begin
i := 10
Timer1.Interval := 1000;
Timer1.Enabled := true;
end;


и на каждом переключении на форму будем ловить FormActivate?


 
Anatoly Podgoretsky   (2004-02-11 12:15) [9]

alex732 (11.02.04 11:26) [4]
А кто будет выдавать управление на анализ остатка?
Нужен другой таймер или цикл опроса.


 
Alex732   (2004-02-11 23:56) [10]

2Alex_***
<<блин... а в чем проблема-то была? я-то думал что таймер у тебя раз минуту или там в 10 мин. срабатывал и нужно было узнать сколько времени осталось до след. срабатывания...
А какая разница? Если 1 раз в 10 минут, то i := 10 * 60... и дальше по тексту...

2Anatoly Podgoretsky
Управление на анализ остатка будет выдавать реакция на событие таймера onTimer...


 
Anatoly Podgoretsky   (2004-02-12 00:01) [11]

Alex732 (11.02.04 23:56) [10]
К этому и призываю, нечто внешнее по отношению к таймеру, а когда произошло событие, то остаток уже равен нулю.


 
Юрий Зотов   (2004-02-12 01:23) [12]

Нужен просто-напросто счетчик тиков таймера. Декрементирующий.



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

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

Наверх





Память: 0.47 MB
Время: 0.031 c
1-79750
JaoDaoDzen
2004-02-14 12:31
2004.02.25
привязка расширения файла к своей программе


1-79910
Alexxxx
2004-02-09 17:38
2004.02.25
Delphi & XML


3-79674
Гришка
2004-01-30 11:05
2004.02.25
Поиск максимального значения поля


14-80197
syte_ser78
2004-01-30 11:49
2004.02.25
Задорнов


1-79847
Серёга
2004-02-10 18:55
2004.02.25
Файлы *.dcu





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский