Hilfe bei Hover-Funktion

  • Hallo,

    ich habe eine GUI erstellt, wo sich 5 graue Sterne befinden. Fährt man z.b. mit der Maus über Stern 4 werden alle Sterne von 1 bis 4 gelb. Jetzt weiß ich aber nicht, wie ich es machen soll, wenn man nun wieder auf Stern 2 zurückgeht, dass alle Sterne bis Stern 2 gelb sind un der Rest grau. Kann mir jemand dabei Helfen?

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Run_AU3Check=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.2.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    _ErstelleNeuBearbeitenGUI("Sender hinzufügen", "Name", "www.www.www")

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

    Func _ErstelleNeuBearbeitenGUI($xiTitel, $xiSendername = "", $xiSenderadresse = "", $xiGenre = "", $xiBewertung = "")
    Opt("GUIOnEventMode", 0)
    Global $xProgrammOrdner = @ScriptDir
    Local $xGenreListe = IniRead($xProgrammOrdner & "\Settings.ini", "Radio Station Manager", "GenreList", "")
    Global $AltePos[1]

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

    Global $SenderGUI_Handle = GUICreate($xiTitel, 406, 186)
    GUISetBkColor(0xFFFFFF)

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

    WinSetOnTop($SenderGUI_Handle, "", 1)

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

    GUICtrlCreateLabel("Sie haben hier die Möglichkeit, Desktop Radio mit weiteren Sendern zu ergänzen.", 8, 8, 389, 17)
    GUICtrlSetColor(-1, 0x005ACE)
    GUICtrlCreateLabel("Sendername:", 8, 40, 67, 17)
    $xSendername = GUICtrlCreateInput($xiSendername, 96, 32, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 32, 16, 16)
    GUICtrlSetTip(-1, "FGVFDGDFG"&@LF&"DXFDSVFGDSGD")

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

    GUICtrlCreateLabel("Senderadresse:", 8, 64, 78, 17)
    $xSenderadresse = GUICtrlCreateInput($xiSenderadresse, 96, 64, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 64, 16, 16)

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

    GUICtrlCreateLabel("Genre:", 8, 96, 36, 17)
    $xGenre = GUICtrlCreateCombo("", 96, 96, 265, 25)
    GUICtrlSetData(-1, $xGenreListe, "Mix")
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 96, 16, 16)

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

    GUICtrlCreateLabel("Sender bewerten:", 8, 128, 88, 17)

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

    Global $xPicArray[6] = [5, _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 104, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 120, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 136, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 152, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 168, 128, 16, 16)]

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

    $xAbbrechen = GUICtrlCreateButton("Abbrechen", 320, 152, 75, 25, $WS_GROUP)
    $xOk = GUICtrlCreateButton("Ok", 240, 152, 75, 25, $WS_GROUP)
    $xSenderTesten = GUICtrlCreateLabel("Sender testen", 8, 160, -1, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000080)
    GUICtrlSetCursor (-1, 0)
    GUISetState(@SW_SHOW)

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

    AdlibRegister("_SenderGUIHoverFunktion", 20)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xAbbrechen
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xOk
    Opt("GUIOnEventMode", 1)
    Return 0
    EndSwitch
    WEnd
    EndFunc

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

    Func _SenderGUIHoverFunktion()
    ;Ermittelt Infos von der Maus.
    Local $xCursor = GUIGetCursorInfo($SenderGUI_Handle)
    ;Beendet die Funktion, falls kein Wert zurückgegeben wurde.
    If Not IsArray($xCursor) Then Return 0

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

    ;Schleife...
    For $xa = 1 To 5
    Switch $xCursor[4]
    Case $xPicArray[$xa]
    For $xb = 1 To $xa
    GUICtrlSetImage($xPicArray[$xb], $xProgrammOrdner & "\Images\Radio Station Manager\StarOn.gif")
    Next
    $AltePos[0] = $xb
    Case Else
    Switch $AltePos[0]
    Case 2
    For $xb = 5 To 1 Step -1
    GUICtrlSetImage($xPicArray[$xb], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    Next
    EndSwitch
    EndSwitch
    Next

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

    ;~ GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOn.gif")
    ;~ GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Frag mich nicht wie ich das geschafft hab... ich weiß es selber nicht

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Run_AU3Check=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.2.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

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

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

    _ErstelleNeuBearbeitenGUI("Sender hinzufügen", "Name", "www.www.www")

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

    Func _ErstelleNeuBearbeitenGUI($xiTitel, $xiSendername = "", $xiSenderadresse = "", $xiGenre = "", $xiBewertung = "")
    Opt("GUIOnEventMode", 0)
    Global $xProgrammOrdner = @ScriptDir
    Local $xGenreListe = IniRead($xProgrammOrdner & "\Settings.ini", "Radio Station Manager", "GenreList", "")
    Global $AltePos[1]

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

    Global $SenderGUI_Handle = GUICreate($xiTitel, 406, 186)
    GUISetBkColor(0xFFFFFF)

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

    WinSetOnTop($SenderGUI_Handle, "", 1)

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

    GUICtrlCreateLabel("Sie haben hier die Möglichkeit, Desktop Radio mit weiteren Sendern zu ergänzen.", 8, 8, 389, 17)
    GUICtrlSetColor(-1, 0x005ACE)
    GUICtrlCreateLabel("Sendername:", 8, 40, 67, 17)
    $xSendername = GUICtrlCreateInput($xiSendername, 96, 32, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 32, 16, 16)
    GUICtrlSetTip(-1, "FGVFDGDFG"&@LF&"DXFDSVFGDSGD")

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

    GUICtrlCreateLabel("Senderadresse:", 8, 64, 78, 17)
    $xSenderadresse = GUICtrlCreateInput($xiSenderadresse, 96, 64, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 64, 16, 16)

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

    GUICtrlCreateLabel("Genre:", 8, 96, 36, 17)
    $xGenre = GUICtrlCreateCombo("", 96, 96, 265, 25)
    GUICtrlSetData(-1, $xGenreListe, "Mix")
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 96, 16, 16)

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

    GUICtrlCreateLabel("Sender bewerten:", 8, 128, 88, 17)

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

    Global $xPicArray[7] = [5, _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 104, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 120, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 136, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 152, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 168, 128, 16, 16)]

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

    $xAbbrechen = GUICtrlCreateButton("Abbrechen", 320, 152, 75, 25, $WS_GROUP)
    $xOk = GUICtrlCreateButton("Ok", 240, 152, 75, 25, $WS_GROUP)
    $xSenderTesten = GUICtrlCreateLabel("Sender testen", 8, 160, -1, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000080)
    GUICtrlSetCursor (-1, 0)
    GUISetState(@SW_SHOW)

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

    AdlibRegister("_SenderGUIHoverFunktion", 20)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xAbbrechen
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xOk
    Opt("GUIOnEventMode", 1)
    Return 0
    EndSwitch
    WEnd
    EndFunc

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

    Func _SenderGUIHoverFunktion()
    ;Ermittelt Infos von der Maus.
    Local $xCursor = GUIGetCursorInfo($SenderGUI_Handle), $pos
    ;Beendet die Funktion, falls kein Wert zurückgegeben wurde.
    If Not IsArray($xCursor) Then Return 0

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

    ;Schleife...
    For $xa = 1 To 5
    Switch $xCursor[4]
    Case $xPicArray[$xa]
    ;~ _ArrayDisplay($xPicArray)
    For $xb = 1 To $xa
    GUICtrlSetImage($xPicArray[$xb], $xProgrammOrdner & "\Images\Radio Station Manager\StarOn.gif")
    Next
    $AltePos[0] = $xb
    Case Else
    For $xb = 6 To 1 Step -1
    Switch $AltePos[0]
    Case $xb
    GUICtrlSetImage($xPicArray[$xb], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    $pos = $xb
    EndSwitch
    Next
    For $i = 5 to $pos Step -1
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    Next
    EndSwitch

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

    Next

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

    ;~ GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOn.gif")
    ;~ GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • bei mir gehts auch, mit der "_MouseHover.au3"; liegt im archiv bei.

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Run_AU3Check=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.2.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    ;############## CHANGE ################################################

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

    #include <_MouseHover.au3> ; nötiger include

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

    _ErstelleNeuBearbeitenGUI("Sender hinzufügen", "Name", "www.www.www")

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

    Func _ErstelleNeuBearbeitenGUI($xiTitel, $xiSendername = "", $xiSenderadresse = "", $xiGenre = "", $xiBewertung = "")
    Opt("GUIOnEventMode", 0)
    Global $xProgrammOrdner = @ScriptDir
    Local $xGenreListe = IniRead($xProgrammOrdner & "\Settings.ini", "Radio Station Manager", "GenreList", "")
    Global $AltePos[1]

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

    Global $SenderGUI_Handle = GUICreate($xiTitel, 406, 186)
    GUISetBkColor(0xFFFFFF)

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

    WinSetOnTop($SenderGUI_Handle, "", 1)

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

    GUICtrlCreateLabel("Sie haben hier die Möglichkeit, Desktop Radio mit weiteren Sendern zu ergänzen.", 8, 8, 389, 17)
    GUICtrlSetColor(-1, 0x005ACE)
    GUICtrlCreateLabel("Sendername:", 8, 40, 67, 17)
    $xSendername = GUICtrlCreateInput($xiSendername, 96, 32, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 32, 16, 16)
    GUICtrlSetTip(-1, "FGVFDGDFG"&@LF&"DXFDSVFGDSGD")

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

    GUICtrlCreateLabel("Senderadresse:", 8, 64, 78, 17)
    $xSenderadresse = GUICtrlCreateInput($xiSenderadresse, 96, 64, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 64, 16, 16)

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

    GUICtrlCreateLabel("Genre:", 8, 96, 36, 17)
    $xGenre = GUICtrlCreateCombo("", 96, 96, 265, 25)
    GUICtrlSetData(-1, $xGenreListe, "Mix")
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 96, 16, 16)

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

    GUICtrlCreateLabel("Sender bewerten:", 8, 128, 88, 17)

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

    Global $xPicArray[6] = [5, _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 104, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 120, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 136, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 152, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 168, 128, 16, 16)]

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

    ;############## CHANGE ################################################

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

    For $i = 1 To UBound($xPicArray)-1 Step +1
    _HoverAddCtrl($xPicArray[$i]) ; Controls zum Hovern "registrieren"
    Next

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

    $xAbbrechen = GUICtrlCreateButton("Abbrechen", 320, 152, 75, 25, $WS_GROUP)
    $xOk = GUICtrlCreateButton("Ok", 240, 152, 75, 25, $WS_GROUP)
    $xSenderTesten = GUICtrlCreateLabel("Sender testen", 8, 160, -1, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000080)
    GUICtrlSetCursor (-1, 0)
    GUISetState(@SW_SHOW)

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

    AdlibRegister("_SenderGUIHoverFunktion", 70)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xAbbrechen
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xOk
    Opt("GUIOnEventMode", 1)
    Return 0
    EndSwitch
    WEnd
    EndFunc

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

    Func _SenderGUIHoverFunktion()

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

    ;############## CHANGE ################################################

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

    $hv = _HoverCheck() ; Hover-Informationen
    If IsArray($hv) Then
    If $hv[0] = "LostHover" Then ; wenn Hover verloren alle Sterne zurücksetzen, keine If-Abfrage nötig da die Sterne die einzigen Controls zum Hovern sind
    For $i = 1 To UBound($xPicArray)-1 Step +1
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    Next
    ElseIf $hv[0] = "AcquiredHover" Then ; wenn Hover erhalten dann checken welcher Stern un bis zu diesem alle aktivieren
    Switch $hv[1]
    Case $xPicArray[1]
    $to = 1
    Case $xPicArray[2]
    $to = 2
    Case $xPicArray[3]
    $to = 3
    Case $xPicArray[4]
    $to = 4
    Case $xPicArray[5]
    $to = 5
    EndSwitch
    For $i = 1 To $to Step +1
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOn.gif")
    Next
    EndIf
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • Ich möchte auch mal meinen Senf dazugeben, Hab das Script von SEuBo mal genommen und ein paar Dinge hinzugefügt. Also wenn man mit der Maus über die Sterne rüberfährt und wieder weg, dann bleiben die Sterne grau. Weiß jetzt nicht ob das bei SEuBo auch schon war :rolleyes: . Naja wenn man dann nochmal drüberfährt und man klickt einen Stern mit der linken Maustaste an wird dies in der Variable $Bewertung gespeichert. Wenn man wieder drüberfährt und über irgendeinen Stern ist und man die rechte Maustaste drückt wird $Bewertung auf 0. Wenn man jetzt eine Bewertung schon abgegeben hat und man möchte sie ändern, einfach drüber gehen und dementsprechen anklicken. Wenn man eine Bewertung abgibt und von den Sternen weggeht, wird trotzdem die Bewertung angezeigt, es sei denn man löscht sie.

    Ansonsten einfach mal testen.

    Achja das AdLib hab ich mal auf 100ms gesetzt, reicht vollkommen aus. ;)

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Run_AU3Check=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.2.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

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

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

    _ErstelleNeuBearbeitenGUI("Sender hinzufügen", "Name", "www.www.www")

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

    Func _ErstelleNeuBearbeitenGUI($xiTitel, $xiSendername = "", $xiSenderadresse = "", $xiGenre = "", $xiBewertung = "")
    Opt("GUIOnEventMode", 0)
    Global $xProgrammOrdner = @ScriptDir
    Local $xGenreListe = IniRead($xProgrammOrdner & "\Settings.ini", "Radio Station Manager", "GenreList", "")
    Global $AltePos[1], $Bewertung

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

    Global $SenderGUI_Handle = GUICreate($xiTitel, 406, 186, 100, 100)
    GUISetBkColor(0xFFFFFF)

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

    WinSetOnTop($SenderGUI_Handle, "", 1)

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

    GUICtrlCreateLabel("Sie haben hier die Möglichkeit, Desktop Radio mit weiteren Sendern zu ergänzen.", 8, 8, 389, 17)
    GUICtrlSetColor(-1, 0x005ACE)
    GUICtrlCreateLabel("Sendername:", 8, 40, 67, 17)
    $xSendername = GUICtrlCreateInput($xiSendername, 96, 32, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 32, 16, 16)
    GUICtrlSetTip(-1, "FGVFDGDFG"&@LF&"DXFDSVFGDSGD")

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

    GUICtrlCreateLabel("Senderadresse:", 8, 64, 78, 17)
    $xSenderadresse = GUICtrlCreateInput($xiSenderadresse, 96, 64, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 64, 16, 16)

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

    GUICtrlCreateLabel("Genre:", 8, 96, 36, 17)
    $xGenre = GUICtrlCreateCombo("", 96, 96, 265, 25)
    GUICtrlSetData(-1, $xGenreListe, "Mix")
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 96, 16, 16)

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

    GUICtrlCreateLabel("Sender bewerten:", 8, 128, 88, 17)

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

    Global $xPicArray[7] = [5, _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 104, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 120, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 136, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 152, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 168, 128, 16, 16)]

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

    $xAbbrechen = GUICtrlCreateButton("Abbrechen", 320, 152, 75, 25, $WS_GROUP)
    $xOk = GUICtrlCreateButton("Ok", 240, 152, 75, 25, $WS_GROUP)
    $xSenderTesten = GUICtrlCreateLabel("Sender testen", 8, 160, -1, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000080)
    GUICtrlSetCursor (-1, 0)
    GUISetState(@SW_SHOW)

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

    AdlibRegister("_SenderGUIHoverFunktion", 100)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xAbbrechen
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xOk
    Opt("GUIOnEventMode", 1)
    Return 0
    EndSwitch
    WEnd
    EndFunc

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

    Func _SenderGUIHoverFunktion()
    ;Ermittelt Infos von der Maus.
    Local $xCursor = GUIGetCursorInfo($SenderGUI_Handle), $pos
    ;Beendet die Funktion, falls kein Wert zurückgegeben wurde.
    If Not IsArray($xCursor) Then Return 0

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

    ;Schleife...
    Switch $xCursor[4]
    Case $xPicArray[1] Or $xPicArray[2] Or $xPicArray[3] Or $xPicArray[4] Or $xPicArray[5]
    For $xa = 1 To 5
    Switch $xCursor[4]
    Case $xPicArray[$xa]
    ;~ _ArrayDisplay($xPicArray)
    For $xb = 1 To $xa
    GUICtrlSetImage($xPicArray[$xb], $xProgrammOrdner & "\Images\Radio Station Manager\StarOn.gif")
    Next
    $AltePos[0] = $xb
    If _IsPressed("01") Then
    $Bewertung = $xa
    ConsoleWrite($Bewertung & @CRLF)
    ;MsgBox(0, "Test", $Bewertung)
    Return 1
    EndIf
    If _IsPressed("02") Then
    $Bewertung = 0
    ConsoleWrite($Bewertung & @CRLF)
    Return 0
    EndIf
    Case Else
    For $xb = 6 To 1 Step -1
    Switch $AltePos[0]
    Case $xb
    GUICtrlSetImage($xPicArray[$xb], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    $pos = $xb
    EndSwitch
    Next
    For $i = 5 to $pos Step -1
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    Next
    EndSwitch
    Next
    Case Else
    If $Bewertung Then
    For $i = 1 To $Bewertung
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOn.gif")
    Next
    For $i = 6 To $Bewertung + 1 Step -1
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    Next
    Else
    For $i = 1 to 5
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    Next
    EndIf
    Return 0
    EndSwitch
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    Da ich gerade nicht schlafen kann, hier meine Lösung:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.2.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

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

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

    _ErstelleNeuBearbeitenGUI("Sender hinzufügen", "Name", "www.www.www")

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

    Func _ErstelleNeuBearbeitenGUI($xiTitel, $xiSendername = "", $xiSenderadresse = "", $xiGenre = "", $xiBewertung = "")
    Opt("GUIOnEventMode", 0)
    Global $xProgrammOrdner = @ScriptDir
    Local $xGenreListe = IniRead($xProgrammOrdner & "\Settings.ini", "Radio Station Manager", "GenreList", "")
    Global $AltePos[1]
    Global $iSelect = 0;~ Variable zum speichern des geklickten Sterns
    Global $SenderGUI_Handle = GUICreate($xiTitel, 406, 186)
    GUISetBkColor(0xFFFFFF)

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

    WinSetOnTop($SenderGUI_Handle, "", 1)

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

    GUICtrlCreateLabel("Sie haben hier die Möglichkeit, Desktop Radio mit weiteren Sendern zu ergänzen.", 8, 8, 389, 17)
    GUICtrlSetColor(-1, 0x005ACE)
    GUICtrlCreateLabel("Sendername:", 8, 40, 67, 17)
    $xSendername = GUICtrlCreateInput($xiSendername, 96, 32, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 32, 16, 16)
    GUICtrlSetTip(-1, "FGVFDGDFG" & @LF & "DXFDSVFGDSGD")

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

    GUICtrlCreateLabel("Senderadresse:", 8, 64, 78, 17)
    $xSenderadresse = GUICtrlCreateInput($xiSenderadresse, 96, 64, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 64, 16, 16)

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

    GUICtrlCreateLabel("Genre:", 8, 96, 36, 17)
    $xGenre = GUICtrlCreateCombo("", 96, 96, 265, 25)
    GUICtrlSetData(-1, $xGenreListe, "Mix")
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 96, 16, 16)

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

    GUICtrlCreateLabel("Sender bewerten:", 8, 128, 88, 17)

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

    Global $xPicArray[7] = [5, _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 104, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 120, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 136, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 152, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 168, 128, 16, 16)]

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

    $xAbbrechen = GUICtrlCreateButton("Abbrechen", 320, 152, 75, 25, $WS_GROUP)
    $xOk = GUICtrlCreateButton("Ok", 240, 152, 75, 25, $WS_GROUP)
    $xSenderTesten = GUICtrlCreateLabel("Sender testen", 8, 160, -1, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000080)
    GUICtrlSetCursor(-1, 0)
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $xPicArray[1] To $xPicArray[5]
    $iSelect = $nMsg - $xPicArray[1] + 1;~ Angeklickter Stern wird gespeichert
    Case $GUI_EVENT_CLOSE
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xAbbrechen
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xOk
    Opt("GUIOnEventMode", 1)
    Return 0
    Case $GUI_EVENT_MOUSEMOVE
    _SenderGUIHoverFunktion()
    EndSwitch
    WEnd
    EndFunc ;==>_ErstelleNeuBearbeitenGUI

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

    Func _SenderGUIHoverFunktion()
    ;Ermittelt Infos von der Maus.
    Local $xCursor = GUIGetCursorInfo($SenderGUI_Handle), $isel = 0

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

    ;Beendet die Funktion, falls kein Wert zurückgegeben wurde.
    If Not IsArray($xCursor) Or $xCursor[4] = $AltePos[0] Then Return 0
    Switch $xCursor[4]
    Case $xPicArray[1] To $xPicArray[5]
    $iSel = $xCursor[4] - $xPicArray[1] + 1
    For $i = 1 To 5
    If $i <= $iSel Then
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOn.gif")
    Else
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    EndIf
    Next
    $AltePos[0] = $xCursor[4]
    Case Else
    For $i = 1 To 5
    If $i <= $iSelect Then
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOn.gif")
    Else
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    EndIf
    Next
    $AltePos[0] = 0
    EndSwitch
    EndFunc ;==>_SenderGUIHoverFunktion

    [/autoit]

    Klick auf Stern speichert die Auswahl in $iSelect.

  • Fahr mal bei dir mit der Maus drüber ohne zu klicken und geh wieder runter von einem Stern, wenn du nicht klickst müssen alle Sterne wieder grau werden (so wie bei mir) und löschen kann man seine Bewertung auch nicht.

    • Offizieller Beitrag

    Stimmt, hab ich in meinem letzen Post angepaßt. Deselectieren braucht man nicht denk ich, deshalb hab ich es weggelassen.

    Edit: AdlibRegister braucht man nicht, es gibt doch den Event $GUI_EVENT_MOUSEMOVE. Desectieren mit rechter Maustaste hinzugefügt.

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.2.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

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

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

    _ErstelleNeuBearbeitenGUI("Sender hinzufügen", "Name", "www.www.www")

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

    Func _ErstelleNeuBearbeitenGUI($xiTitel, $xiSendername = "", $xiSenderadresse = "", $xiGenre = "", $xiBewertung = "")
    Opt("GUIOnEventMode", 0)
    Global $xProgrammOrdner = @ScriptDir
    Global $oldPos
    Local $xGenreListe = IniRead($xProgrammOrdner & "\Settings.ini", "Radio Station Manager", "GenreList", "")
    Global $iSelect = 0;~ Variable zum speichern des geklickten Sterns
    Global $SenderGUI_Handle = GUICreate($xiTitel, 406, 186)
    GUISetBkColor(0xFFFFFF)

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

    WinSetOnTop($SenderGUI_Handle, "", 1)

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

    GUICtrlCreateLabel("Sie haben hier die Möglichkeit, Desktop Radio mit weiteren Sendern zu ergänzen.", 8, 8, 389, 17)
    GUICtrlSetColor(-1, 0x005ACE)
    GUICtrlCreateLabel("Sendername:", 8, 40, 67, 17)
    $xSendername = GUICtrlCreateInput($xiSendername, 96, 32, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 32, 16, 16)
    GUICtrlSetTip(-1, "FGVFDGDFG" & @LF & "DXFDSVFGDSGD")

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

    GUICtrlCreateLabel("Senderadresse:", 8, 64, 78, 17)
    $xSenderadresse = GUICtrlCreateInput($xiSenderadresse, 96, 64, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 64, 16, 16)

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

    GUICtrlCreateLabel("Genre:", 8, 96, 36, 17)
    $xGenre = GUICtrlCreateCombo("", 96, 96, 265, 25)
    GUICtrlSetData(-1, $xGenreListe, "Mix")
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 96, 16, 16)

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

    GUICtrlCreateLabel("Sender bewerten:", 8, 128, 88, 17)

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

    Global $xPicArray[7] = [5, _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 104, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 120, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 136, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 152, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 168, 128, 16, 16)]

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

    $xAbbrechen = GUICtrlCreateButton("Abbrechen", 320, 152, 75, 25, $WS_GROUP)
    $xOk = GUICtrlCreateButton("Ok", 240, 152, 75, 25, $WS_GROUP)
    $xSenderTesten = GUICtrlCreateLabel("Sender testen", 8, 160, -1, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000080)
    GUICtrlSetCursor(-1, 0)
    GUISetState(@SW_SHOW)
    While 1
    $pos = GUIGetCursorInfo($SenderGUI_Handle)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $xPicArray[1] To $xPicArray[5]
    $iSelect = $nMsg - $xPicArray[1] + 1;~ Angeklickter Stern wird gespeichert
    Case $GUI_EVENT_CLOSE
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xAbbrechen
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xOk
    Opt("GUIOnEventMode", 1)
    Return 0
    Case $GUI_EVENT_MOUSEMOVE
    _SenderGUIHoverFunktion($pos[4])
    EndSwitch
    If _IsPressed("02") And $pos[4] = $xPicArray[$iSelect] Then $iSelect = 0
    WEnd
    EndFunc ;==>_ErstelleNeuBearbeitenGUI

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

    Func _SenderGUIHoverFunktion($iControl)
    If $oldPos = $iControl Then Return
    Switch $iControl
    Case $xPicArray[1] To $xPicArray[5]
    $iSel = $iControl - $xPicArray[1] + 1
    Case Else
    $iSel = $iSelect
    EndSwitch
    For $i = 1 To 5
    If $i <= $iSel Then
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOn.gif")
    Else
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    EndIf
    Next
    $oldPos = $iControl
    EndFunc ;==>_SenderGUIHoverFunktion

    [/autoit]
  • Hut ab Raupi, dass ist ja echt einfacher.
    Habs mal so geändert das man zum löschen nicht über dem Stern sein muss, über der man bei der Bewertung war.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Run_AU3Check=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.2.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

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

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

    _ErstelleNeuBearbeitenGUI("Sender hinzufügen", "Name", "www.www.www")

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

    Func _ErstelleNeuBearbeitenGUI($xiTitel, $xiSendername = "", $xiSenderadresse = "", $xiGenre = "", $xiBewertung = "")
    Opt("GUIOnEventMode", 0)
    Global $xProgrammOrdner = @ScriptDir
    Local $xGenreListe = IniRead($xProgrammOrdner & "\Settings.ini", "Radio Station Manager", "GenreList", "")
    Global $OldPos, $Bewertung

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

    Global $SenderGUI_Handle = GUICreate($xiTitel, 406, 186, 100, 100)
    GUISetBkColor(0xFFFFFF)

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

    WinSetOnTop($SenderGUI_Handle, "", 1)

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

    GUICtrlCreateLabel("Sie haben hier die Möglichkeit, Desktop Radio mit weiteren Sendern zu ergänzen.", 8, 8, 389, 17)
    GUICtrlSetColor(-1, 0x005ACE)
    GUICtrlCreateLabel("Sendername:", 8, 40, 67, 17)
    $xSendername = GUICtrlCreateInput($xiSendername, 96, 32, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 32, 16, 16)
    GUICtrlSetTip(-1, "FGVFDGDFG"&@LF&"DXFDSVFGDSGD")

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

    GUICtrlCreateLabel("Senderadresse:", 8, 64, 78, 17)
    $xSenderadresse = GUICtrlCreateInput($xiSenderadresse, 96, 64, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 64, 16, 16)

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

    GUICtrlCreateLabel("Genre:", 8, 96, 36, 17)
    $xGenre = GUICtrlCreateCombo("", 96, 96, 265, 25)
    GUICtrlSetData(-1, $xGenreListe, "Mix")
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 96, 16, 16)

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

    GUICtrlCreateLabel("Sender bewerten:", 8, 128, 88, 17)

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

    Global $xPicArray[5] = [GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 104, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 120, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 136, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 152, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 168, 128, 16, 16)]

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

    $xAbbrechen = GUICtrlCreateButton("Abbrechen", 320, 152, 75, 25, $WS_GROUP)
    $xOk = GUICtrlCreateButton("Ok", 240, 152, 75, 25, $WS_GROUP)
    $xSenderTesten = GUICtrlCreateLabel("Sender testen", 8, 160, -1, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000080)
    GUICtrlSetCursor(-1, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    Global $GetInfo = GUIGetCursorInfo($SenderGUI_Handle)
    $nMsg = GUIGetMsg()

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

    For $i = 0 To 4
    If _IsPressed("02") And $GetInfo[4] = $xPicArray[$i] Then $Bewertung = 0
    Next

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

    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Opt("GUIOnEventMode", 1)
    Return 0
    Case $GUI_EVENT_MOUSEMOVE
    _SenderGUIHoverFunktion()
    Case $xPicArray[0] To $xPicArray[4]
    $Bewertung = $nMsg - $xPicArray[0] + 1 ; Angeklickter Stern wird gespeichert
    Case $xAbbrechen
    Opt("GUIOnEventMode", 1)
    Return 0
    Case $xOk
    Opt("GUIOnEventMode", 1)
    Return 0
    EndSwitch
    WEnd
    EndFunc

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

    Func _SenderGUIHoverFunktion()
    If $OldPos = $GetInfo[4] Then Return
    Switch $GetInfo[4]
    Case $xPicArray[0] To $xPicArray[4]
    $CurrentPos = $GetInfo[4] - $xPicArray[0] + 1
    Case Else
    $CurrentPos = $Bewertung
    EndSwitch
    For $i = 0 To 4
    If $i + 1 <= $CurrentPos Then
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOn.gif")
    Else
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    EndIf
    Next
    $OldPos = $GetInfo[4]
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    Du mit deinen Schleifen, das geht auch ohne.

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    #cs ----------------------------------------------------------------------------

    AutoIt Version: 3.3.2.0
    Author: myName

    Script Function:
    Template AutoIt script.

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

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

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

    _ErstelleNeuBearbeitenGUI("Sender hinzufügen", "Name", "www.www.www")

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

    Func _ErstelleNeuBearbeitenGUI($xiTitel, $xiSendername = "", $xiSenderadresse = "", $xiGenre = "", $xiBewertung = "")
    Opt("GUIOnEventMode", 0)
    Global $xProgrammOrdner = @ScriptDir
    Global $oldPos
    Local $xGenreListe = IniRead($xProgrammOrdner & "\Settings.ini", "Radio Station Manager", "GenreList", "")
    Global $iSelect = 0;~ Variable zum speichern des geklickten Sterns
    Global $SenderGUI_Handle = GUICreate($xiTitel, 406, 186)
    GUISetBkColor(0xFFFFFF)

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

    WinSetOnTop($SenderGUI_Handle, "", 1)

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

    GUICtrlCreateLabel("Sie haben hier die Möglichkeit, Desktop Radio mit weiteren Sendern zu ergänzen.", 8, 8, 389, 17)
    GUICtrlSetColor(-1, 0x005ACE)
    GUICtrlCreateLabel("Sendername:", 8, 40, 67, 17)
    $xSendername = GUICtrlCreateInput($xiSendername, 96, 32, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 32, 16, 16)
    GUICtrlSetTip(-1, "FGVFDGDFG" & @LF & "DXFDSVFGDSGD")

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

    GUICtrlCreateLabel("Senderadresse:", 8, 64, 78, 17)
    $xSenderadresse = GUICtrlCreateInput($xiSenderadresse, 96, 64, 265, 21)
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 64, 16, 16)

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

    GUICtrlCreateLabel("Genre:", 8, 96, 36, 17)
    $xGenre = GUICtrlCreateCombo("", 96, 96, 265, 25)
    GUICtrlSetData(-1, $xGenreListe, "Mix")
    GUICtrlCreateIcon($xProgrammOrdner & "\Images\Icons\Application\Radio Station Manager\Info.ico", -1, 376, 96, 16, 16)

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

    GUICtrlCreateLabel("Sender bewerten:", 8, 128, 88, 17)

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

    Global $xPicArray[7] = [5, _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 104, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 120, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 136, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 152, 128, 16, 16), _
    GUICtrlCreatePic($xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif", 168, 128, 16, 16)]

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

    $xAbbrechen = GUICtrlCreateButton("Abbrechen", 320, 152, 75, 25, $WS_GROUP)
    $xOk = GUICtrlCreateButton("Ok", 240, 152, 75, 25, $WS_GROUP)
    $xSenderTesten = GUICtrlCreateLabel("Sender testen", 8, 160, -1, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000080)
    GUICtrlSetCursor(-1, 0)
    GUISetState(@SW_SHOW)
    While 1
    $pos = GUIGetCursorInfo($SenderGUI_Handle)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $xPicArray[1] To $xPicArray[5]
    $iSelect = $nMsg - $xPicArray[1] + 1;~ Angeklickter Stern wird gespeichert
    Case $GUI_EVENT_CLOSE
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xAbbrechen
    Opt("GUIOnEventMode", 1)
    Return 0

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

    Case $xOk
    Opt("GUIOnEventMode", 1)
    Return 0
    Case $GUI_EVENT_MOUSEMOVE
    _SenderGUIHoverFunktion($pos[4])
    EndSwitch
    If _IsPressed("02") And $pos[4] >= $xPicArray[1] And $pos[4] <= $xPicArray[1] Then $iSelect = 0
    WEnd
    EndFunc ;==>_ErstelleNeuBearbeitenGUI

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

    Func _SenderGUIHoverFunktion($iControl)
    If $oldPos = $iControl Then Return
    Switch $iControl
    Case $xPicArray[1] To $xPicArray[5]
    $iSel = $iControl - $xPicArray[1] + 1
    Case Else
    $iSel = $iSelect
    EndSwitch
    For $i = 1 To 5
    If $i <= $iSel Then
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOn.gif")
    Else
    GUICtrlSetImage($xPicArray[$i], $xProgrammOrdner & "\Images\Radio Station Manager\StarOff.gif")
    EndIf
    Next
    $oldPos = $iControl
    EndFunc ;==>_SenderGUIHoverFunktion

    [/autoit]
  • Du mit deinen Schleifen, das geht auch ohne.

    Ich bin halt ein Schleifenfetischist :P . Aber na und las mich doch äättsch :P ^^. Aber deinen Vorschlag würde ich auch nehmen als meine Schleife. Und $xPicArray würde ich trotzdem von 0 bis 4 deklarieren. :P