Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: [решено] Таймер на Input
Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Лучше использовать WM_COMMAND в этом случае:

Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
;

Global $iTimer = -1

$Form1 = GUICreate("Form1", 265, 42, -1, -1)
$Input1 = GUICtrlCreateInput("Input1", 8, 8, 241, 21)

GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

While 1
    $nMsg = GUIGetMsg()

    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch

    If $iTimer <> -1 And TimerDiff($iTimer) >= 5000 Then
        GUICtrlSetData($Input1, "0")
        $iTimer = -1
    EndIf
WEnd

Func WM_COMMAND($hWnd, $msg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0xFFFF)
    Local $hCtrl = $lParam

    Switch $nID
        Case $Input1
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_UPDATE ; Edit (Input) control has been changed
                    Local $sInput_Data = GUICtrlRead($Input1)

                    If $sInput_Data = "" Then
                        $iTimer = TimerInit()
                    Else
                        $iTimer = -1
                    EndIf
            EndSwitch
    EndSwitch

    Return $GUI_RUNDEFMSG
EndFunc
Sylver Dragon,
Неплохо придумано с секундами, я не думал что так таймер можно построить

Код: Выделить весь код
$hTimer = _TimerSec_Init(3)
_TimerSec_Wait($hTimer)

Func _TimerSec_Init($iSec)
    Return Mod(@SEC + $iSec, 60)
EndFunc

Func _TimerSec_Wait($hTimer)
    Do
        Sleep(10)
    Until @SEC = $hTimer
EndFunc


P.S
Но в твоём примере, если при ожидании 5-ти секунд юзер вводит данные в поле, то они заменяются на 0 в любом случае.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:59, 31-05-2009 | #3

Название темы: [решено] Таймер на Input