Suche für Liste

  • Hallo, ich möchte gerne eine Suche erstellen, habe dies aber auch noch nie gemacht und habe nichts Passendes gefunden, was mir weiterhelfen kann. Da die Namen in einer Liste stehen, die mit einem Inputfeld gesucht werden sollen, sobald man die ersten Buchstaben eingibt.

    Beispiel ich gebe den Namen Msgbox 5 in das Inputfeld ein, dann sollen die anderen Namen aus der Liste verschwinden und nur noch Msgbox 5 ist in der Liste zu finden.

    Ich habe mal eine Test GUI erstellt

    und habe auch in den Code beschrieben wie, was passieren soll und gemacht werden soll. Nur leider weiß ich gar nicht, wie man bei einer Suchfunktion überhaupt vorgeht.

    Auf jeden Fall soll jeder Name, der in der Liste steht, eine eigene Funktion aufrufen.

    Vielleicht habt ihr Ideen oder könnt mir auf die Sprünge helfen. Ich lerne gerne dazu ^^


  • Hi,

    so würde ich das umsetzen.

    Ein Array mit allen Actions (2D mit Name zum anklicken, Function zum Aufrufen und ein Bool, ob der Index übergeben werden soll.

    Wenn man sich für WM_COMMAND Messages registriert, wird die Methode unten aufgerufen, wenn mit einem Control interagiert wird; Hier das anklicken in der Listbox und das Tippen im Inputfeld.

    Die Funktionen _ActionListSelect($iIndex=Default) und _FilterList($sSearch="") werden dann aufgerufen. Sie sind aber gleichzeitig auch so gestaltet, dass sie auch manuell aufgerufen werden können.

    Das mach ich z.B. um am Anfang die Liste zu füllen.

    Ich hoffe, das hilft dir weiter.

    Mfg, Kanashius

  • Top ich danke dir :klatschen: :thumbup:

  • hey, ich hab noch ein kleines Problem gefunden in dem Code, das ist mir jetzt leider erst aufgefallen

    und zwar, wenn ich den Namen suche zb. Test Moin und ich den in der liste aufrufe, dann führt er die Funktion Func _msgbox($iIndex) aus, er soll aber dennoch die Func _testmoin () abrufen sie gehört ja schließlich zu ihr und nicht zu Func _msgbox($iIndex) wenn ich nicht in die Suche schreibe und gleich auf den Namen klicke, dann führt er auch die richtige Funktion auf.

    Wäre dir sehr dankbar, wenn du mir das noch ggf. fixen kannst :)

    Gruß Whitey

  • Hi :)
    Das hab ich tatsächlich übersehen :|

    Hier eine Lösung:

    MfG,

    Kanashius