Slider

  • hallo folgendes problem:

    hab dieses Skript hier:

    Spoiler anzeigen
    [autoit]

    if GUICtrlGetState($slider1) = 80 Then
    $sli1r = GUICtrlRead($slider1)
    GUICtrlSetData($label47, $sli1r)
    sleep(20)
    EndIf
    if GUICtrlGetState($slider2) = 80 Then
    $sli2r = GUICtrlRead($slider2)
    GUICtrlSetData($label40, $sli2r)
    sleep(20)
    EndIf
    if GUICtrlGetState($slider3) = 80 Then
    $sli3r = GUICtrlRead($slider3)
    GUICtrlSetData($label41, $sli3r)
    sleep(20)
    EndIf
    if GUICtrlGetState($slider4) = 80 Then
    $sli4r = GUICtrlRead($slider4)
    GUICtrlSetData($label42, $sli4r)
    sleep(20)
    EndIf
    if GUICtrlGetState($slider5) = 80 Then
    $sli5r = GUICtrlRead($slider5)
    GUICtrlSetData($label43, $sli5r)
    sleep(20)
    EndIf

    [/autoit]

    damit soll kontinuierlich die Daten des Sliders in den nebenstehenden label geschrieben werden..problem is nur dass durch das Sleep das Skript sehr viel langsamer wird, allein beenden dauert komischerweiße 1sek

    wenn ich sleep wegmache flackern die labels was ziemlich blöd aussieht, kennt jemand ne alternative?

    Einmal editiert, zuletzt von Reaker (2. Oktober 2009 um 17:28)

  • Wie frägst du ab ob der Slider verwendet wird?
    Kontinuirlich, GUIGetMsg, GUICtrlSetOnEvent, WM_COMMAND?

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUICreate("slider", 220, 100, 100, 200)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    [/autoit] [autoit][/autoit] [autoit]

    $slider1 = GUICtrlCreateSlider(10, 10, 200, 20)
    GUICtrlSetLimit(-1, 200, 0) ; change min/max value
    $label = GUICtrlCreateLabel("", 10, 50, 50, 20)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUISetState()
    GUICtrlSetData($slider1, 45) ; set cursor

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)
    $nNotifyCode = BitShift($wParam, 16)
    $nID = BitAND($wParam, 0x0000FFFF)
    $Pos = GUICtrlRead($nID)
    If $nID = $slider1 Then GUICtrlSetData($label, $Pos & "%")
    EndFunc

    [/autoit]