Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.20;
Скачать: CL | DM;

Вниз

Timer и оставшееся время   Найти похожие ветки 

 
WELLiON   (2004-01-06 16:13) [0]

Как узнать, сколько времени осталось в таймере?
Заранее спасибо.


 
alex_*** ©   (2004-01-06 16:17) [1]

Осталось до чего? пока не выключат?


 
Тимохов ©   (2004-01-06 16:18) [2]

Новый год богат перлами!


 
DVM ©   (2004-01-06 16:19) [3]

Забавная фраза. Таймер он что бутылка с водой? :). Никак.


 
Тимохов ©   (2004-01-06 16:22) [4]

Я тут в орешник залез - он что не обновляется? Жаль. Достойный кандидат удет!


 
Тохус ©   (2004-01-06 16:42) [5]

Насколько я понимаю, вопрос касается того, как определить, сколько времени осталось до срабатывания таймера.
Если это так, то возможное решение - вызывать GetTickCount по последнему событию onTimer и в тот момент, когда надо определить "оставшееся" время.


 
Intell ©   (2004-01-06 16:42) [6]

WELLiON, это довольно весомый текст и чаще используют внутренний таймер. Короче - а зачем тебе это понадобилось? Большой интервал сделал?


 
Тимохов ©   (2004-01-06 16:43) [7]

Тохус © (06.01.04 16:42) [5]
Вы смелы в предположениях.
К сожалению в данном форуме практикуется такая вешь - непонятный вопрос и 0 дополнительных разъяснений. А люди опытные начинают гадать...
Все-таки хотелось бы дождаться комментирев автора вопроса...


 
alex_*** ©   (2004-01-06 16:48) [8]

[6] Вес текста играет роль когда капусту солят ))


 
Intell ©   (2004-01-06 16:49) [9]

Нет, когда квасят...


 
WELLiON   (2004-01-07 23:02) [10]

Есть таймер на 30-80 минут (настраивается пользователем). Прога сидит в трее. Я хочу, чтобы ее хинт по трею показывал оставшееся до срабатывания таймера время. Это в принципе возможно?
P.S.: я думал это не сложно и подобные вопросы раньше возникали.
P.S. 2: а вообще я время от времени подобные перлы выдаю. %-)
Заранее благодарен.


 
Stilgar ©   (2004-01-07 23:19) [11]

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


 
sniknik ©   (2004-01-07 23:25) [12]

> P.S.: я думал это не сложно и подобные вопросы раньше возникали.
это и есть несложно, очень.
сделай таймер срабатываюшим раз минуту всегда, а в нем считай количество, дойдет до "30-80 вызовов/мин (настраивается пользователем)" запускай на работу и обнуляй счетчик, меньше выдавай хинт с разницей задано-сосчитано это и будет то что осталось.

сложность не в задаче, сложно понять что за задача по урезанному описанию (см [0], в [10] уже более ясная постановка).


 
Юрий Зотов ©   (2004-01-08 00:39) [13]

> WELLiON (07.01.04 23:02) [10]

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

type
TForm1 = class(TForm)
Timer1: TTimer; // Выставить Interval = 60000 (1 минута)
procedure FormCreate(Sender: TObject); // На OnCreate
procedure Timer1Timer(Sender: TObject); // На OnTimer
procedure FormDestroy(Sender: TObject); // На OnDestroy
private
FEventInterval: integer; // Число тиков между событиями
FTickCount: integer; // Счетчик тиков
FIconData: TNotifyIconData;
end;

procedure Form1.FormCreate(Sender: TObject);
begin
FEventInterval = 80; // То есть, 80 минут
FCount := 0;
Application.ShowMainForm := False;
with FIconData do
begin
cbSize := SizeOf(FIconData);
Wnd := Handle;
uID := 100;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_USER + 100; // Сообщение от иконки в WndProc
hIcon := Application.Icon.Handle; // Меню Project | Options
StrPCopy(szTip, IntToStr(FEventInterval - FTickCount))
end;
Shell_NotifyIcon(NIM_ADD, @FIconData)
end;

procedure Form1.Timer1Timer(Sender: TObject);
begin
Inc(FCount);
StrPCopy(szTip, IntToStr(FEventInterval - FTickCount));
Shell_NotifyIcon(NIM_MODIFY, @FIconData);
if FCount = FTime then
begin
FCount := 0;
//... Что-то делаем
end
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @FIconData)
end;


 
WELLiON   (2004-01-08 16:17) [14]

Пасибки огромные.


 
TUser ©   (2004-01-08 16:50) [15]

Создай переменную, инициализируй ее значением, равным необходимому числу секунд. На каждый тик таймера - уменьшать.

А если нет предположения, что юзер будет все время изменять значение системных часов, - то можнол и по системному времени ориентирооваться при определении текста хинта.



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

Текущий архив: 2004.01.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
1-63241
hfa
2004-01-09 10:53
2004.01.20
ChangeFileExt не работает но и не ругаеться


3-63033
Undert
2003-12-22 12:33
2004.01.20
как организовать SQL запрос


1-63099
seregin2
2004-01-08 14:01
2004.01.20
как получить форматирование из RichText


14-63306
Vlad Oshin
2003-12-26 10:21
2004.01.20
СВЯТОЕ ПИСЬМО :)


14-63362
pasha_golub
2003-12-29 12:26
2004.01.20
Ищу Settler