Hilfe bei Suchfunktion bei Tabs und ListView

  • Ich sage mal Hallo ;)

    Also mein Problem ist die Suchfunktion... ich Habe es mal ausprobiert aber Er sucht nicht die namen in der ListView

    Ich hoffe ich bekomme Hilfe Vielen Dank


    [autoit]

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

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

    Local $Gui = GUICreate("Minecraft ID's Finder Tool 1.0v", 560, 360)
    $cInput_Searchstring = GUICtrlCreateInput("Suchwort,Blockname,Itemname", 5, 320, 235, 25)
    $cButton_Search = GUICtrlCreateButton("ID Suchen", 245, 320, 60, 25)
    $Button1 = GUICtrlCreateButton("Webseite", 430, 24, 100, 25)
    $Button2 = GUICtrlCreateButton("Exit", 430, 64, 100, 25)
    Local $tab = GUICtrlCreateTab(5, 5, 400, 300)
    Local $tab1 = GUICtrlCreateTabItem("Block IDs ")
    Local $hListView = GUICtrlCreateListView("IDs |Blockart |Findbarkeit", 10, 30, 389 , 270, -1, BitOR( $WS_EX_CLIENTEDGE, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES))
    $ListView1_0 = GUICtrlCreateListViewItem("1|Stein|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("2|Gras|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("3|Erde|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("4|Pflasterstein|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("5|Holz|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("6|Setzling|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("7|Bedrock|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("8|Wasser|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("9|Stehendes Wasser|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("10|Lava|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("11|Stehendes Lava|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("12|Sand|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("13|Kies|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("14|Golderz|test", $hListView)
    $ListView1_0 = GUICtrlCreateListViewItem("15|Eisenerz|test", $hListView)
    Local $tab2 = GUICtrlCreateTabItem("Item IDs ")
    Local $hListView2 = GUICtrlCreateListView("IDs |Itemart |Test", 10, 30, 389 , 270, -1, BitOR( $WS_EX_CLIENTEDGE, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES))
    $ListView1_0 = GUICtrlCreateListViewItem("test|test|test", $hListView2)
    $ListView1_0 = GUICtrlCreateListViewItem("test|test|test", $hListView2)
    $ListView1_0 = GUICtrlCreateListViewItem("test|test|test", $hListView2)
    Local $tab3 = GUICtrlCreateTabItem("Commands")
    Local $hListView3 = GUICtrlCreateListView("IDs |Itemart |Test", 10, 30, 389 , 270, -1, BitOR( $WS_EX_CLIENTEDGE, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES))
    $ListView1_0 = GUICtrlCreateListViewItem("test|test|test", $hListView3)
    $ListView1_0 = GUICtrlCreateListViewItem("test|test|test", $hListView3)
    $ListView1_0 = GUICtrlCreateListViewItem("test|test|test", $hListView3)
    Local $tab4 = GUICtrlCreateTabItem("Hilfe")

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

    _GUICtrlListView_RegisterSortCallBack($hListView)
    _GUICtrlListView_RegisterSortCallBack($hListView2)
    _GUICtrlListView_RegisterSortCallBack($hListView3)
    GUISetState(@SW_SHOW)

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    _GUICtrlListView_UnRegisterSortCallBack($hListView)
    Exit
    Case $hListView
    _GUICtrlListView_SortItems($hListView, GUICtrlGetState($hListView))
    EndSwitch
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    _GUICtrlEdit_Destroy($hListView)
    Exit
    Case $cButton_Search
    $aSearch = _SearchString(_GUICtrlListView_GetSelectedIndices($hListView), GUICtrlRead($cInput_Searchstring))
    Switch @error
    Case 0
    _GUICtrlEdit_SetSel($hListView, $aSearch[0] - 1, $aSearch[1] - 1)
    ControlFocus($hWnd, "", $hListView)
    Case 1
    MsgBox(16, "Fehler", "String wurde nicht gefunden.")
    Case 2
    MsgBox(16, "Fehler", "Kein Suchwort eingegeben oder Textfeld leer.")
    EndSwitch
    EndSwitch
    WEnd
    Exit

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

    Func _SearchString($hListView, $sSearchString)
    If StringReplace($hListView, " ", "") = "" Or StringReplace($sSearchString, " ", "") = "" Then Return SetError(2, 0, 0)

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

    $iStringInStr = StringInStr($hListView, $sSearchString)
    If Not $iStringInStr Then Return SetError(1, 0, 0)

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

    Local $aReturn[2] = [$iStringInStr, $iStringInStr + StringLen($sSearchString)]
    Return $aReturn
    EndFunc

    [/autoit]
  • Also ich versteh das nicht so...
    Also ich komme mit der UDF nicht so Klar...
    wie soll ich das einbauen das es mit Handle geht

    weil das ist mein erstes Script von mir und Freund

    • Offizieller Beitrag

    Ich glaube ihr solltet erst mal ein bischen mehr Grundlagen lernen.

    Beispiel:

    [autoit]

    _GUICtrlEdit_Destroy
    _GUICtrlEdit_SetSel

    [/autoit]


    haben absolut nichts mit einem ListView zu tun, kann man schon am Namen erkennen.

    [autoit]

    _GUICtrlListView_GetSelectedIndices

    [/autoit]


    Liefert die selektierten Einträge des ListViews zurück und zwar nur dessen Index.
    In diesem Index wollt ihr suchen.

  • Habe gesehen das es bei ListView2 und 3 nicht sortiert

    ich habe es so versucht

    [autoit]

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    _GUICtrlListView_UnRegisterSortCallBack($hListView)
    _GUICtrlListView_UnRegisterSortCallBack($hListView2)
    _GUICtrlListView_UnRegisterSortCallBack($hListView3)
    Exit
    Case $hListView
    _GUICtrlListView_SortItems($hListView, GUICtrlGetState($hListView))
    _GUICtrlListView_SortItems($hListView2, GUICtrlGetState($hListView2))
    _GUICtrlListView_SortItems($hListView3, GUICtrlGetState($hListView3))
    EndSwitch
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    _GUICtrlEdit_Destroy($hListView)
    _GUICtrlEdit_Destroy($hListView2)
    _GUICtrlEdit_Destroy($hListView3)
    Exit

    [/autoit]

    Er sortiert jetzt komisch wenn ich ListView klicke Sortieren sich die andren ListViews mit

    • Offizieller Beitrag
    [autoit]

    Case $hListView

    [/autoit]


    Benutzt du und dann führtst du die sortierung für alle Listviews aus, da ist klar das es nicht klappt.
    Für jedes einzelne Listview mußt du eine Abfrage einfügen.

    [autoit]

    Case $hListview
    _GUICtrlListView_SortItems($hListView, GUICtrlGetState($hListView))
    Case $hListview2
    _GUICtrlListView_SortItems($hListView2, GUICtrlGetState($hListView2))
    Case $hListview3
    _GUICtrlListView_SortItems($hListView3, GUICtrlGetState($hListView3))

    [/autoit]

    Ein fertiges Script werde ich dir nicht vor die Nase werfen, sonst ist der Lerneffekt gleich 0.
    Lerne erst mal die Grundlagen.

    PS: Ich hab dich oben schon mal drauf hingewiesen das

    [autoit]

    _GUICtrlEdit_Destroy

    [/autoit]


    nicht für eine Listview geeignet ist, also bringt es gar nichts es stur weiter zu verwenden.
    Diese Funktion ist um ein Edit oder Input zu zerstören (löschen) und das hat nichts mit einem ListView zu tun.
    Einfach wild durch die Gegend irgendwelche Funktionen per C&P kopieren bringt dir nichts.
    Jedes Control ist anders und die Funktionen nicht übertragbar.

    Das könnte dir helfen: http://wiki.autoit.de/wiki/index.php/Tutorial
    [ gelöst ] Buch

    Edit:
    Case $GUI_EVENT_CLOSE fragst du 2 mal in deiner Schleife ab, das ist unnütz und sollte zusammengeführt werden.
    Switch GUIGetMsg() benutzt du 2 mal hintereinander und kann getrost zusammengelegt werden.

    Edit2: Hier ist eine Funktion von BugFix um in einem Listview zu suchen ListView - Suche .
    Ich bezweifle aber, das du es bei deinem Wissensstand einbauen kannst.
    Sowas kann man ganz leicht mit der Foreninternen Suche finden. Suchbegriff Listview suchen ;)

  • Aber wenn ich

    [autoit]

    Case $GUI_EVENT_CLOSE
    Switch GUIGetMsg()

    [/autoit]

    es Wegmache startet er mein Script Nicht

    Das von BugFix habe ich schon gesehen und ich Steiger da echt nicht durch
    ....

    ich werde mal das buch und wiki mal durchsehen

    • Offizieller Beitrag
    Zitat

    ich werde mal das buch und wiki mal durchsehen

    Super Idee. Du kannst dir auch noch die Deutsche Hilfe laden, http://translation.autoit.de/autoitinfo/hil…nd-07_09_10.zip

  • Wieso muss ich 2/3 mal klicken das er sortiert.....

    wow ist viel zu lesen um das Problem zu suchen da habe ich wieder so eine Lust... viel zu kompliziert

    was soll da falsch sein

    [autoit]

    _GUICtrlListView_GetSelectedIndices

    [/autoit]

    die Zeile habe ich gelöscht

    [autoit]

    _GUICtrlEdit_Destroy

    [/autoit]

    die zeile

    [autoit]

    _GUICtrlEdit_SetSel

    [/autoit]


    in
    sieht jetzt so aus

    [autoit]

    _GUICtrlListView_FindText

    [/autoit]

    Edit
    ist das normal
    Time: 1907.244

    Einmal editiert, zuletzt von DieGasse (10. April 2011 um 19:49)