Форум: "Основная";
Текущий архив: 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