_WM_NOTIFY - _GUICtrlListView_SortItems zu langsam

  • Hallo Zusammen,

    ich nutze in meinem Script eine ListView, welche ich durch _GUICtrlListView_RegisterSortCallBack($ListView1), GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY") und eine entsprechende _WM_NOTIFY Funktion sortierbar gemacht habe.

    Die Zeile _GUICtrlListView_SortItems($hWndFrom, DllStructGetData($tInfo, "SubItem")) sorgt dafür, dass man die Daten nach den Headern auf/absteigend sortieren kann. Dies dann auch mit dem bekannten sortierhäkchen :). Allerdings ist diese Funktion seeeehr seeeehr langsam. aktuell habe ich ca 1000 zeilen im ListView. Hierbei benötigt die Funktion schon ca 2 Sekunden zum Sortieren. Am Ende werden es sicher um die 1500-2000 Zeilen sein.

    Hattet hierfür jemand eine Lösung? Mir ist wichtig, dass ich nach den Headern auf/absteigend sortieren kann und dies dann eben entsprechend durch dieses Häkchen angezeigt wird

    Danke und LG

  • Ähm kann es sein, dass zweimal sortiert wird?

    Kommentiere mal _GUICtrlListView_RegisterSortCallBack( und _GUICtrlListView_UnRegisterSortCallBack aus.

    Entweder bin ich gerade verwirrt, oder diese Funktionen würden genau das bereitstellen was du im Codezweig Case $LVN_COLUMNCLICK machst..

    Also entweder oder. Wenn du in der _WM_NOTIFY-Funktion nur das machst, dann lass sie weg.

    Grüße autoiter

  • autoiter um _GUICtrlListView_SortItems nutzen zu können benötige ich _GUICtrlListView_RegisterSortCallBack(. Ohne Funktioniert das gar nicht.

    Oscar Ja, da hast du recht. Da ging es aber um eine andere Sortierung (Selbes Programm, andere Stelle :)).

    Ich habe das nun mit Hilfe deiner Ideen selbst gelöst.

    Ich ziehe das ganze von der Datenbank, direkt so sortiert, wie ich das brauche und spiele es im ListView ein. Durch eine Boolsche variable gebe ich mit ob True oder False und setze somit auch das häckchen :),

    Es ist zwar noch immer nicht ultra schnell, aber min 80% schneller als vorher :).

    Danke euch!