ListView Eintrag prüfen

  • Hey,
    wie kann ich überprüfen, ob ein ListView Eintrag ausgewählt ist oder nicht?
    Ich benutze momentan

    [autoit]

    $i = _GUICtrlListView_GetSelectedIndices($ListView, True)
    $Wert = _GUICtrlListView_GetItemTextArray($ListView,$i[1])
    MsgBox(0, "", "Dein dritter Eintrag ist: " & $Wert[3])

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


    um den Wert der einzelnen Werte auszulesen, aber wenn ich keinen Eintrag ausgewählt habe beendet sich
    das Programm.

    Code
    ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    $Wert = _GUICtrlListView_GetItemTextArray($ListView, $i[1])
    $Wert = _GUICtrlListView_GetItemTextArray($ListView,^ ERROR

    3 Mal editiert, zuletzt von Slyfex (29. März 2010 um 16:23)

  • Du solltest mit IsArray prüfen ob es sich um ein Array handelt, also so:

    [autoit]

    #include <Array.au3>
    $i = _GUICtrlListView_GetSelectedIndices($ListView, True)
    if IsArray($i) then
    $Wert = _GUICtrlListView_GetItemTextArray($ListView,$i[1])
    if $Wert[0] > 2 then MsgBox(0, "", "Dein dritter Eintrag ist: " & $Wert[3])
    else
    MsgBox(0, "", "Kein Eintrag ausgewählt")
    endif

    [/autoit]

    mfg (Auto)Bert

  • Funktioniert doch nicht, ich habe die entsprechende Funktion leider nicht getestet.
    Der Fehler bleibt gleich.

  • Hallo Slyfex,

    sorry, ich habe gerade noch einmal die Hilfe zu _GUICtrlListView_GetSelectedIndices gelesen. _GUICtrlListView_GetSelectedIndices gibt wenn nichts ausgewählt ist ein Array mit 1 Element zurück

    Zitat

    Fehler: basierend auf $fArray
    Array mit dem folgenden Format
    [0] - Anzahl von Items im Array (0)

    du muss also wie folgt abändern:

    [autoit]

    $i = _GUICtrlListView_GetSelectedIndices($listview, True)
    If $i[0] > 0 Then
    $Wert = _GUICtrlListView_GetItemTextArray($listview, $i[1])
    If $Wert[0] > 2 Then MsgBox(0, "", "Dein dritter Eintrag ist: " & $Wert[3])
    Else
    MsgBox(0, "", "Kein Eintrag ausgewählt")
    EndIf

    [/autoit]

    mfg (Auto)Bert