Einträge in ListView via Input's aktuallisieren

  • Hallo liebe AutoIT-Gemeinschaft,

    Erst mal mein Script:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <Excel.au3>
    $oExcel=_ExcelBookOpen(@ScriptDir & "\test.xls",0 ,false ,"", "")
    $aSheet=_ExcelReadSheetToArray($oExcel, 2, 1, 5, 4, True)
    _ExcelBookClose($oExcel)
    GUICreate("", 450, 200)
    GUICtrlCreateLabel("Test 01", 10, 10)
    GUICtrlCreateLabel("Test 02", 120, 10)
    GUICtrlCreateLabel("Test 03", 230, 10)
    GUICtrlCreateLabel("Test 04", 340, 10)
    $01 = GUICtrlCreateInput("", 10, 25, 100, 22)
    $02 = GUICtrlCreateInput("", 120, 25, 100, 22)
    $03 = GUICtrlCreateInput("", 230, 25, 100, 22)
    $04 = GUICtrlCreateInput("", 340, 25, 100, 22)
    $ListView = GUICtrlCreateListView("Test 01|Test 02|Test 03|Test 04", 10, 60, 430, 130)
    For $i = 1 To UBound($aSheet) -1
    GUICtrlCreateListViewItem($aSheet[$i][0]&"|"&$aSheet[$i][1]&"|"&$aSheet[$i][2]&"|"&$aSheet[$i][3], $ListView)
    Next
    GUISetState()
    While 1
    $iMsg = GUIGetMsg()
    Switch $iMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Ich möchte folgendes:

    Sobald man oben in die Input's etwas eingibt, soll sich die ListView soweit aktuallisieren, dass nur noch Einträge angezeigt werden, die dem eigegebenen Suchmuster in der Spalte entsprechen.

    Wäre wirklich nett wenn mir jemand mein Script ergänzen könnte und dabei Kommentare zu den einzellnen Schritten schreiben könnte damit ich als Amateur das auch verstehe ;)

    Test-Excel im Anhang.

    Vielen Dank schon mal.

    LG Inferior

  • ich wollte bei mir auch ne "livesuche" einbauen hab es dann aber wieder verworfen, da es mir nicht so einfach umzusetzen schien.

  • Hallo,

    vielen, vielen, vielen, vielen Dank für die Mühe sumsum!

    Das ist das was ich gesucht habe. Wirklich Klasse. Hab soweit alles verstanden ;)

    Hätte da noch eine Frage bezüglich der ListView:

    Ich möchte eine Zeile in der ListView markieren und es soll ausgelesen werden welches Item angewählt wurde und was darin steht.

    Ausgegeben soll das entweder in einem String oder in einem Array sein.

    Habe bereits mit folgenden Befehlen experimentiert:

    [autoit]


    _GUICtrlListView_GetSelectedCount
    _GUICtrlListView_GetSelectedIndices
    _GUICtrlListView_GetItemText
    _GUICtrlListView_GetItemTextArray

    [/autoit]


    Leider bisher ohne Lösung :(

    Kann mir jemand dabei helfen?

    Vielen Dank schon mal.

    LG Inferior

  • Keiner eine Idee? :(

    Also nach dem Schema soll das ablaufen:

    [autoit]

    If "Spalte in ListView ausgewählt" Then "auslesen des Textes der Spalte in ein Array/String"

    [/autoit]

    Gruß Inferior

    • Offizieller Beitrag

    Keiner eine Idee?


    Ist dir nicht mal der Gedanke gekommen, dass keiner antwortet, weil die Frage durch einfaches Lesen der Listview-UDF-Hilfe sich schon selbst beantwortet?
    Lerne mit der Hilfe umzugehen, es nützt dir nichts, wenn du jetzt die Lösung vorgekaut bekommst.
    Tipp: Du möchtest Text aus einem selektiertem Item - vielleicht suchst du mal in der UDF nach Funktion(en) mit dem Wort "..Text.."... :whistling:

    [OT]
    Bitte korrigiere mal deine Signatur. Der Spruch ist inhaltlich und von der Rechtschreibung her inkorrekt.
    Er lautet:
    "Denke nie gedacht zu haben, denn das Denken der Gedanken ist gedankenloses Denken." ;)
    [/OT]

  • Ist dir nicht mal der Gedanke gekommen, dass keiner antwortet, weil die Frage durch einfaches Lesen der Listview-UDF-Hilfe sich schon selbst beantwortet?
    Lerne mit der Hilfe umzugehen, es nützt dir nichts, wenn du jetzt die Lösung vorgekaut bekommst.
    Tipp: Du möchtest Text aus einem selektiertem Item - vielleicht suchst du mal in der UDF nach Funktion(en) mit dem Wort "..Text.."...


    Es ist nicht so als würde ich mir hierzu keine Gedanken machen.

    Habe sowohl in der Hilfe gesucht also auch versucht mein script selbst zur lösung zu bringen.

    habe es nun so gelößt:

    [autoit]


    ; ......
    Case $aendern
    For $i = 0 To UBound($aSheet) - 1
    If _GUICtrlListView_GetItemSelected($ListView, $i) = True Then $selected_Icon = $i
    Next
    $selected_Icon_text = _GUICtrlListView_GetItemTextArray($ListView, $selected_Icon)
    _arraydisplay($selected_Icon_text)

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