PureBasic

AddWindowTimer()

Синтаксис

AddWindowTimer(#Window , Timer , Timeout)

Описание


Добавляет новый таймер к указанному окну. Таймер используется для генерации события типа #PB_Event_Timer, через заданные промежутки времени. Для отслеживания этих событий можно использовать функции WindowEvent() и WaitWindowEvent(). С помощью функции RemoveWindowTimer() можно удалить таймер.

Параметры

#Window Номер, идентифицирующий используемое Окно. Таймер всегда присоединён к окну и будет удалён при закрытии этого Окна.
Timer Определённый пользователем Номер, идентифицирующий этот таймер. Таймеры разных окон могут иметь совпадающие Номера. Это значение позднее будет возвращено из функции EventTimer() при получении события #PB_Event_Timer. Также его можно использовать для удаления таймера с помощью функции RemoveWindowTimer().
Timeout Задаёт промежуток времени (в миллисекундах) между событиями #PB_Event_Timer. События таймера могут порождаться только когда не ждут обработки другие события (таймеры имеют низкий приоритет). Это значит, что время, прошедшее между двумя событиями таймера, может быть больше заданного значения 'Timeout'. Поэтому таймеры не годятся для точного измерения времени, а предназначены для выполнения периодических действий, таких как обновление Гаджета и т.п.

Возвращаемое значение

Ничего.

Пример

If OpenWindow(0, 0, 0, 400, 100, "Пример таймера", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ProgressBarGadget(0, 10, 10, 380, 20, 0, 100)
    AddWindowTimer(0, 123, 250) ; добавление таймера #123 к окну #0, с периодом 250 мс.

    Value = 0
    Repeat
        Event = WaitWindowEvent()

        If Event = #PB_Event_Timer And EventTimer() = 123
            Value = (Value + 5) % 100
            SetGadgetState(0, Value)
        EndIf

    Until Event = #PB_Event_CloseWindow
EndIf

Комментарии

Чтобы изменить периодичность таймера, вы должны сначала удалить таймер, а затем добавить его с тем же Номером и новым значением 'Timeout':

RemoveWindowTimer(#Window, Timer)
AddWindowTimer(#Window, Timer, Timeout)

См. также

RemoveWindowTimer(), EventTimer()

Поддерживаемые OS

Все

<- AddKeyboardShortcut() - Оглавление Window - BindEvent()->