Listbox als verwaltung

  • also ich habe volgendes problem. ich möchte wenn man auf ein item der listbox klcikt das sich der text in einer input box ändert

    die daten stehen in einer ini und die listbox items werden durch die funktion settingsladen hinzugefügt

    [autoit]

    settingsladen()
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $Button5
    Speichern()
    EndSelect
    if _GUICtrlListBox_GetCurSel($List1) <> -1 Then
    $momentanausgewaehlt = _GUICtrlListBox_GetText($List1, _GUICtrlListBox_GetCurSel($List1))
    GUICtrlSetData ( 13, IniRead ("Config.ini", $momentanausgewaehlt, "wert1", "")
    GUICtrlSetData ( 14, IniRead ("Config.ini", $momentanausgewaehlt, "wert2", "")
    GUICtrlSetData ( 11, IniRead ("Config.ini", $momentanausgewaehlt, "wert3", "")
    GUICtrlSetData ( 22, IniRead ("Config.ini", $momentanausgewaehlt, "wert4", "")
    GUICtrlSetData ( 16, IniRead ("Config.ini", $momentanausgewaehlt, "wert5", "")
    GUICtrlSetData ( 15, IniRead ("Config.ini", $momentanausgewaehlt, "wert6", "")
    GUICtrlSetData ( 17, IniRead ("Config.ini", $momentanausgewaehlt, "wert7", "")
    GUICtrlSetData ( 18, IniRead ("Config.ini", $momentanausgewaehlt, "wert8", "")
    GUICtrlSetData ( 19, IniRead ("Config.ini", $momentanausgewaehlt, "wert9", "")
    EndIf
    WEnd

    [/autoit]

    ich verstehe nicht warum das nicht funktioniere.
    ich hoffe ihr könnt mir helfen oder mir eine bessere methode bieten.

    mfg

  • ok ich hab das jetzt mal so gemacht aber wo ist der fehler?

    [autoit]

    $listhandle = GUICtrlGetHandle($List1)

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

    settingsladen()
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $Button5
    Speichern()
    Case $msg = $List1
    $momentanausgewaehlt = _GUICtrlListBox_GetText($listhandle, _GUICtrlListBox_GetCurSel($listhandle), 1)
    GUICtrlSetData ( 13, IniRead ("Config.ini", $momentanausgewaehlt, "wert1", "")
    GUICtrlSetData ( 14, IniRead ("Config.ini", $momentanausgewaehlt, "wert2", "")
    GUICtrlSetData ( 11, IniRead ("Config.ini", $momentanausgewaehlt, "wert3", "")
    GUICtrlSetData ( 22, IniRead ("Config.ini", $momentanausgewaehlt, "wert4", "")
    GUICtrlSetData ( 16, IniRead ("Config.ini", $momentanausgewaehlt, "wert5", "")
    GUICtrlSetData ( 15, IniRead ("Config.ini", $momentanausgewaehlt, "wert6", "")
    GUICtrlSetData ( 17, IniRead ("Config.ini", $momentanausgewaehlt, "wert7", "")
    GUICtrlSetData ( 18, IniRead ("Config.ini", $momentanausgewaehlt, "wert8", "")
    GUICtrlSetData ( 19, IniRead ("Config.ini", $momentanausgewaehlt, "wert9", "")

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

    EndSelect
    WEnd

    [/autoit]
  • Hilft dir das weiter? Steckt eigentlich alles drin, zum umbauen und vereinfachen hab ich heute keine Lust mehr - sorry ;)

    Spoiler anzeigen
    [autoit]


    #include <GuiListBox.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>

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

    Local $Ordner = 'C:\Programme'
    Local $TempFile = _TempFile()
    Global $aOrdner
    HotKeySet("{ENTER}", "_Open_Ordner")

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

    RunWait(@ComSpec & " /c " & 'dir "'&$Ordner&'" /ad /b > "'&$TempFile&'"', "", @SW_HIDE)
    _FileReadToArray($TempFile, $aOrdner)
    FileDelete($TempFile)

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

    Opt('GUIOnEventMode', 1)

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

    $gui = GUICreate('Schnelle Ordnerauswahl by funkey', 400, 600, -1, -1)
    GUISetOnEvent(-3, '_Ende')
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

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

    Global $Input = GUICtrlCreateInput('', 10, 10, 380, 20)
    Global $List = GUICtrlCreateList('', 10, 40, 380, 560)
    Global $hList = GUICtrlGetHandle(-1)

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

    For $i = 1 To $aOrdner[0]
    GUICtrlSetData(-1, $aOrdner[$i])
    Next

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

    GUISetState()

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

    While 1
    Sleep(100000)
    WEnd

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

    Func _Check_Eingabe($iwParam)
    switch $iwParam
    case 0x03000003
    _GUICtrlListBox_SetCurSel($hList, _GUICtrlListBox_FindString($hList, GUICtrlRead($Input)))
    EndSwitch
    EndFunc

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

    Func _Open_Ordner()
    If GUICtrlRead($List) <> "" Then ShellExecute($Ordner & '\' & GUICtrlRead($List))
    EndFunc

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

    Func _Ende()
    Exit
    EndFunc

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    _Check_Eingabe($iwParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
    If Not IsHWnd($List) Then $hWndListBox = GUICtrlGetHandle($List)
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $hWndFrom
    Case $List, $hWndListBox
    Switch $iCode
    Case $LBN_DBLCLK ;hier einfach die Konstante für einen einfachen Klick einsetzen - siehe WindowsConstants.au3
    _Open_Ordner()
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND (Bugfix - http://www.autoit.de)

    [/autoit]