GUICtrlCreateList mit Doppelklick

  • Hallo, liebe Autoit Gemeinde, habe hier ein recht einfaches Script, das ne Ini Datei einliest.
    Wie kann ich es Bitte nun machen das ich einen Eintrag mit Doppelklick auswähle.
    Habe mir hier schon verschiedenes durchgelesen, komme aber nicht so richtig weiter.

    Die Ini ist so aufgebaut.

    [Bestand]
    03.10=PE Klemmen
    13.10=NH Trenner
    14.10=Schütz
    15.10=Sammelschiene
    17.10=RCD 380V

    und hier das Script.

    Spoiler anzeigen
    [autoit]


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

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

    $ini = "Autoit.ini"
    $iniread = IniReadSection($ini, "Bestand")

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

    GUICreate("Form1", 633, 447, 193, 125)
    $List = GUICtrlCreateList("", 80, 32, 369, 300)
    GUISetState(@SW_SHOW)
    $Button1 = GUICtrlCreateButton("Liste", 10, 400, 150, 17)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    Local $check[$iniread[0][0]]
    For $i = 1 To $iniread[0][0]
    $check[$i - 1] = GUICtrlSetData($List, $iniread[$i][0])
    Next
    EndSwitch
    WEnd

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

    wäre sehr nett von euch, wenn mir da einer weiterhelfen könnte.

  • Man kann das z.B. so realisieren, hier ein Beispiel Code mit Form:

    Spoiler anzeigen
    [autoit]

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

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

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

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

    $Form1_1 = GUICreate("Listbox_Test", 320, 320, 78, 100)
    $List1 = GUICtrlCreateList("", 45, 10, 220, 300)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Close")

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

    _GUICtrlListBox_AddString($List1, "Test1")
    _GUICtrlListBox_AddString($List1, "Test2")
    _GUICtrlListBox_AddString($List1, "Test3")

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

    GUISetState(@SW_SHOW)
    Opt("GUIOnEventMode", 1)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func Close()
    Exit
    EndFunc

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

    ;Eigentliche Funktion #############
    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $iIDFrom, $iCode
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    $hlistbox = GUICtrlGetHandle($List1)
    Switch $ilParam
    Case $List1, $hlistbox
    Switch $iCode
    Case 2 ;Doppelklick
    local $aItem
    $aItem = _GUICtrlListBox_GetCurSel($List1) ;Eintrags Position bekommen
    msgbox(0,"Doppelklick","Es wurde folgender Eintrag doppelt geklickt: " & _GUICtrlListBox_GetText($List1, $aItem)) ; Eintrag auslesen
    EndSwitch
    EndSwitch
    EndFunc
    ;#################################

    [/autoit]

    Komisch der AutoIt Code Erzeuger des Forums, fügt mir hier teilweise ";" in den Code ein, wo eigentlich garkeins ist (z.B. bei der MsgBox), daher nochmal als Anhang:

    8 Mal editiert, zuletzt von KloMeister (16. Oktober 2014 um 09:45)