Hilfe bei #GuiList

  • Also ich habe folgendes Problem bzw will folgendes bewältigen und zwar würde ich gerne aus meiner Liste was makieren und dann den button Select drücken, wenn ich das machen würde ich gerne das markierte in Msgbox angezeigt bekommen ( den rest würde ich alleine dann schaffen)

    Hier mein Script bis jetzt aber ich schaffs irgendwie nicht...

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <GuiList.au3>

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

    ;==> Realmlist
    $File1 = FileOpen("Path.ini",0)
    $File2 = FileReadLine($File1, 4)
    $File3 = FileOpen($File2,0)
    $File4 = FileReadLine($File3, 1)
    ;==> WoW.exe
    $File5 = FileReadLine($File1, 2)
    ;==> Manuelle Realmliste
    $Listeoeffnen = FileOpen("Liste.ini",0)
    $Liste = FileRead($Listeoeffnen)
    ;==> GUI Buttons...
    $GUI = GUICreate("WoW Realmlist Changer", 416, 208)
    $GroupRealmlist = GUICtrlCreateGroup("Realmlists", 8, 8, 305, 185)
    $Aktuelle = GUICtrlCreateLabel("Aktuelle Realmlist:", 110,25,180,20)
    GUICtrlSetColor($Aktuelle,0x0046D5)
    $Realms = GUICtrlCreateLabel("Verfügbare Realms:", 110,85,180,20)
    GUICtrlSetColor($Realms,0x0046D5)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Start = GUICtrlCreateButton("Start", 328, 24, 73, 33, 0)
    $Selecting = GUICtrlCreateButton("Select", 328, 64, 73, 33, 0)
    $Exit = GUICtrlCreateButton("Exit", 328, 144, 73, 33, 0)
    $About = GUICtrlCreateButton("About", 328, 104, 73, 33, 0)
    $Group2 = GUICtrlCreateGroup("Menü", 320, 8, 89, 185)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $AktuelleRealmlist = GUICtrlCreateInput($File4, 16, 40, 281, 21)
    GUICtrlSetState ($AktuelleRealmlist, $GUI_DISABLE)
    ;==> GUI Select..
    $WoWListe = GuiCtrlCreateList("", 16, 100, 281, 90)
    GuiCtrlSetData($WoWListe, $Liste)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Exit
    Exit
    Case $About
    Call("About")
    Case $Start
    Call("Start")
    Case $Selecting
    $ret = _GUICtrlListGetSelItems ($WoWListe)
    If (Not IsArray($ret)) Then
    MsgBox(16, "Error", "Unknown error from _GUICtrlListGetSelItems")
    Else
    For $i = 1 To $ret[0]
    MsgBox(0, "Selected", $ret[$i])
    Next
    EndIf
    EndSwitch
    WEnd

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

    ;==> Funtkionen
    Func About()
    MsgBox(0,"WoW Realmlist Changer","Created by I3iLLiG." & @Crlf & @Crlf & "i3illig@gmail.com.")
    EndFunc

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

    Func Start()
    Run($File5)
    EndFunc

    [/autoit]

    2 Mal editiert, zuletzt von I3iLLiG (11. September 2007 um 21:26)

    • Offizieller Beitrag

    Hi,

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiList.au3>

    ;==> Realmlist
    $File1 = FileOpen("Path.ini",0)
    $File2 = FileReadLine($File1, 4)
    $File3 = FileOpen($File2,0)
    $File4 = FileReadLine($File3, 1)
    ;==> WoW.exe
    $File5 = FileReadLine($File1, 2)
    ;==> Manuelle Realmliste
    $Listeoeffnen = FileOpen("Liste.ini",0)
    $Liste = FileRead($Listeoeffnen)
    ;==> GUI Buttons...
    $GUI = GUICreate("WoW Realmlist Changer", 416, 208)
    $GroupRealmlist = GUICtrlCreateGroup("Realmlists", 8, 8, 305, 185)
    $Aktuelle = GUICtrlCreateLabel("Aktuelle Realmlist:", 110,25,180,20)
    GUICtrlSetColor($Aktuelle,0x0046D5)
    $Realms = GUICtrlCreateLabel("Verfügbare Realms:", 110,85,180,20)
    GUICtrlSetColor($Realms,0x0046D5)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Start = GUICtrlCreateButton("Start", 328, 24, 73, 33, 0)
    $Selecting = GUICtrlCreateButton("Select", 328, 64, 73, 33, 0)
    $Exit = GUICtrlCreateButton("Exit", 328, 144, 73, 33, 0)
    $About = GUICtrlCreateButton("About", 328, 104, 73, 33, 0)
    $Group2 = GUICtrlCreateGroup("Menü", 320, 8, 89, 185)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $AktuelleRealmlist = GUICtrlCreateInput($File4, 16, 40, 281, 21)
    GUICtrlSetState ($AktuelleRealmlist, $GUI_DISABLE)
    ;==> GUI Select..
    $WoWListe = GuiCtrlCreateList("", 16, 100, 281, 90)
    GuiCtrlSetData($WoWListe, "test1|more testing|even more testing|demo|")
    GUISetState(@SW_SHOW)

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Exit
    Exit
    Case $About
    About()
    Case $Start
    Start()
    Case $Selecting
    $ret = _GUICtrlListGetSelItemsText ($WoWListe)
    If (Not IsArray($ret)) Then
    MsgBox(16, "Error", "Unknown error from _GUICtrlListGetSelItemsText")
    Else
    For $i = 1 To $ret[0]
    MsgBox(0, "Selected", $ret[$i])
    Next
    EndIf
    EndSwitch
    WEnd

    ;==> Funtkionen
    Func About()
    MsgBox(0,"WoW Realmlist Changer","Created by I3iLLiG." & @Crlf & @Crlf & "i3illig@gmail.com.")
    EndFunc

    Func Start()
    Run($File5)
    EndFunc

    [/autoit]

    So long,

    Mega

  • ah danke sehr das mit dem [0] muss ich mir mal genau anschnaun aber das gleiche war vorher mit variablen so wollte die einfach net benutzen^^

  • Hi,

    [0] gibt den Index des Array-Elementes an. Die Funktion

    [autoit]

    _GUICtrlListGetSelItemsText()

    [/autoit]

    hat als Rückgabewert nämlich ein Array und nicht, so wie Du es bisher vielleicht nur kennst eine Variable.
    Dabei steht im Index-0 (also im ersten Element des Arrays) die Anzahl der restlichen Elemente. Xenobiologist überprüft daher zunächst mit

    [autoit]

    If Not IsArray() Then

    [/autoit]

    ob die Funktion nicht korrekt ausgeführt wurde und gibt im Falle einer korrekten Ausführung jede Selektion aus. Dies erreicht er dadurch, dass er von Array-Element 1 (was das erste Element ist, wo eine Selektion drin stehen kann) bis Array-Element n (wie gesagt, das 0te Element [0]) zählt und dann das jeweilige Element in einer MsgBox ausgibt.