Übergabe von Listview funktioniert nicht

  • Hi,
    Bitte um Hilfe beim Script, die Übergabe des makierten Items Funktioniert nicht
    - $read =_GUICtrlListView_GetSelectedIndices($hListView) Funktioniert dann weiter gabe der Zahl an
    - _GUICtrlListView_GetItemText($hListView,$read) Ausgabe Funktioniert nicht
    Es sollte eigentlich denn Namen des Items ausgeben

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>

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

    $Form1 = GUICreate("Form1", 471, 311, 192, 124)
    $Button1 = GUICtrlCreateButton("Button1", 192, 256, 75, 25)
    $hListView = GUICtrlCreateListView("Spalte1|Spalte2", 32, 16, 410, 198)
    GuiCtrlCreateListViewItem("Item1-1|Item1-2",$hListView)
    GuiCtrlCreateListViewItem("Item2-1|Item2-2",$hListView)
    GuiCtrlCreateListViewItem("Item3-1|Item3-2",$hListView)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $read=_GUICtrlListView_GetSelectedIndices($hListView) ;Ausgabe der makierten Zeile als Zahl z.Bsp 2
    $read2=_GUICtrlListView_GetItemText($hListView,$read) ;Ausgabe des Items funktioniert nicht nur wenn ich stat $read eine Zahl angebe.
    MsgBox(0,"",$read) ;Gibt mir die makierte Item als Zahl aus
    MsgBox(0,"",$read2) ; Keine Ausgabe
    EndSwitch
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von bh-systems (15. Dezember 2013 um 22:23)

    • Offizieller Beitrag

    Weis zwar im Augenblick nicht warum, aber man muß die Rückgabe von _GUICtrlListView_GetSelectedIndices in Number oder Int umwandeln, dann funzt es.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>

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

    $Form1 = GUICreate("Form1", 471, 311, 192, 124)
    $Button1 = GUICtrlCreateButton("Button1", 192, 256, 75, 25)
    $hListView = GUICtrlCreateListView("Spalte1|Spalte2", 32, 16, 410, 198)
    GUICtrlCreateListViewItem("Item1-1|Item1-2", $hListView)
    GUICtrlCreateListViewItem("Item2-1|Item2-2", $hListView)
    GUICtrlCreateListViewItem("Item3-1|Item3-2", $hListView)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $read = _GUICtrlListView_GetSelectedIndices($hListView) ;Ausgabe der makierten Zeile als Zahl z.Bsp 2
    $read2 = _GUICtrlListView_GetItemText($hListView, Int($read)) ;Ausgabe des Items funktioniert nicht nur wenn ich stat $read eine Zahl angebe.
    MsgBox(0, "", $read) ;Gibt mir die makierte Item als Zahl aus
    MsgBox(0, "", $read2) ; Keine Ausgabe
    EndSwitch
    WEnd

    [/autoit]
    • Offizieller Beitrag

    Btw, die Lösung von BugFix funzt genauso ;)
    Wieder mal eine Funktion, die nur mangelhaft kompatibel ist.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>

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

    $Form1 = GUICreate("Form1", 471, 311, 192, 124)
    $Button1 = GUICtrlCreateButton("Button1", 192, 256, 75, 25)
    $hListView = GUICtrlCreateListView("Spalte1|Spalte2", 32, 16, 410, 198)
    GUICtrlCreateListViewItem("Item1-1|Item1-2", $hListView)
    GUICtrlCreateListViewItem("Item2-1|Item2-2", $hListView)
    GUICtrlCreateListViewItem("Item3-1|Item3-2", $hListView)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $read = _GUICtrlListView_GetSelectedIndices(GUICtrlGetHandle( $hListView)) ;Ausgabe der makierten Zeile als Zahl z.Bsp 2
    $read2 = _GUICtrlListView_GetItemText(GUICtrlGetHandle( $hListView), $read) ;Ausgabe des Items funktioniert nicht nur wenn ich stat $read eine Zahl angebe.
    MsgBox(0, "", $read) ;Gibt mir die makierte Item als Zahl aus
    MsgBox(0, "", $read2) ; Keine Ausgabe
    EndSwitch
    WEnd

    [/autoit]