none
ListView Suchfunktion RRS feed

  • Frage

  • Hallo,

    ich habe folgendes Problem: Für eine ListView mit etwa 2000 Einträgen habe ich eine Suchfunktion eingebaut. Diese sucht in allen Einträgen nach dem Suchbegriff und löscht die nicht passenden. Beim beenden der Suche werden alle Einträge wiederhergestellt. Hier liegt allerdings das Problem, da das Zeichnen der wiederhergestellten Einträge ziemlich lange ( ca. 15 Sekunden, wenn es mehr Einträge werden wird es wahrscheinlich auch immer länger dauern) lädt.

    Kennt jemand eine bessere Suchfunktion, wie zum Beispiel die von Windows?


    Vielen Dank
    Rafael
    Freitag, 27. November 2009 17:44

Antworten

  • Entweder man geht selbst Eintrag für Eintrag durch.
    -oder- man benutzt LVM_FINDITEM http://msdn.microsoft.com/en-us/library/bb774903(VS.85).aspx
    -oder- man hat ein virtuelles Listview und durchsucht seine Daten und hat damit den Index.
    -oder- du hast Deine Daten in gehashter/sortierer Form und kennst die Zeile in der die Daten stehen...
    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    • Als Antwort vorgeschlagen Martin Richter Samstag, 5. Dezember 2009 07:35
    • Als Antwort markiert Martin Richter Montag, 14. Dezember 2009 11:57
    Samstag, 5. Dezember 2009 07:35

Alle Antworten

  • Wie machst Du das denn bitte?
    Und warum löscht Du erst Einträge um sie dann wiedereinzufügen.

    Um 2000 Einträge in ein ListView einzufügen benötigt mein Rechner nur den Bruchteil einer Sekunde. Für das Anzeigen noch weniger.


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Samstag, 28. November 2009 11:47
  • Eigentlich ist es nicht wichtig, wie ich es gemacht habe.
    Ich würde nur gerne wissen, wie man eine Suchfunktion für eine ListView normalerweise programmiert...

    Vielen Dank und viele Grüße
    Rafael
    Freitag, 4. Dezember 2009 14:06
  • Entweder man geht selbst Eintrag für Eintrag durch.
    -oder- man benutzt LVM_FINDITEM http://msdn.microsoft.com/en-us/library/bb774903(VS.85).aspx
    -oder- man hat ein virtuelles Listview und durchsucht seine Daten und hat damit den Index.
    -oder- du hast Deine Daten in gehashter/sortierer Form und kennst die Zeile in der die Daten stehen...
    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    • Als Antwort vorgeschlagen Martin Richter Samstag, 5. Dezember 2009 07:35
    • Als Antwort markiert Martin Richter Montag, 14. Dezember 2009 11:57
    Samstag, 5. Dezember 2009 07:35