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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.01 c
14-63341
Anatoly Podgoretsky
2003-12-30 07:43
2004.01.20
С днем рождения 30.10.2003


1-63184
oens
2004-01-10 08:52
2004.01.20
шрифт


8-63262
WondeRu
2003-09-15 10:08
2004.01.20
Как отключить OpenGL ускорение видеокарты?


14-63354
passlight
2003-12-31 13:59
2004.01.20
Ведь у нас же есть море, прекрасное море... (С)


1-63181
DDA
2004-01-10 13:09
2004.01.20
Определение какая нажата кнопка





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