Seite 1 von 1

große Tabellen im ListViewGadget umsortieren

Verfasst: 29.06.2014 15:07
von reiner jakob
Für eine Dokumentenverwaltung mit umfangreichen Sortier-Möglichkeiten verwende ich zur Darstellung das ListviewGadget.
bei Datenmengen über 20.000 Zeilen mit 13 Spalten wird die ständige Neuerstellung zeitlich langsam zur Qual.
Kennt jemand eine Möglichkeit, die Liste referent zu sortierten und dann ohne neuschreiben über ??? Listzeiger ??? sortiert darzustellen.

Ich habe großes Zutrauen zu euch . Gell ihr wißt da was.
ich warte in Andacht und Hoffnung auf euere Weisheiten.

Re: große Tabellen im ListViewGadget umsortieren

Verfasst: 29.06.2014 15:51
von edel
Was dauert denn da so lange, das Sortieren oder das Einfügen? Für letzteres kannst du es so machen :
http://www.purebasic.fr/german/viewtopi ... 26#p284726

Re: große Tabellen im ListViewGadget umsortieren

Verfasst: 29.06.2014 15:58
von reiner jakob
hi edel

das Sortieren ist kein Problem. Zu diesem Zeitpunkt ist die Liste im ListViewGadget angezeigt. Das Erstellen der Viewlist dauert lang. Wenn ich sortiert habe würde ich gerne die Liste nicht neu erstellen, sondern nur die AnzeigeReihenfolge der Sortierung nachempfinden. Ich habe deinen link noch nicht angesehen. Das mach ich gleich.

Re: große Tabellen im ListViewGadget umsortieren

Verfasst: 29.06.2014 16:31
von reiner jakob
Schluck .... Das verdauen...dauert
melde mich später.

Re: große Tabellen im ListViewGadget umsortieren

Verfasst: 29.06.2014 17:35
von mk-soft
Es hilft auch wenn man vor dem füllen das Gadget mit HideGadget(...) versteckt und nach dem füllen des wieder angezeigt.

Re: große Tabellen im ListViewGadget umsortieren

Verfasst: 29.06.2014 20:48
von Danilo
Für Windows während dem Füllen einfach das Neuzeichnen ausschalten, da sonst nach jedem hinzufügen
eines Eintrags neu gezeichnet wird und die Scrollbars aktualisiert werden.

Code: Alles auswählen

Procedure DisableRedraw(hWnd)
    ; http://msdn.microsoft.com/en-US/library/dd145219(v=vs.85).aspx
    SendMessage_(hWnd,#WM_SETREDRAW,0,0)
EndProcedure

Procedure EnableRedraw(hWnd)
    ; http://msdn.microsoft.com/en-US/library/dd145219(v=vs.85).aspx
    SendMessage_(hWnd,#WM_SETREDRAW,1,0)
    RedrawWindow_(hWnd, 0, 0, #RDW_ERASE | #RDW_FRAME | #RDW_INVALIDATE | #RDW_ALLCHILDREN)
EndProcedure




DisableRedraw( GadgetID(listbox) )

; füllen

EnableRedraw( GadgetID(listbox) )

Re: große Tabellen im ListViewGadget umsortieren

Verfasst: 01.07.2014 21:35
von reiner jakob
hallo ihr freundlichen Tip-Geber

Edel. Deine Lösung ist ja irre schnell, und hat mit auch irre schell den Kopf platzen lassen. Das pack ich nicht, oder in diesem Leben nicht mehr. ich glaube, das geht dann mit Farben und anderen Attributen genau so weiter.

hk-soft, deine und Danilos Lösung sind wohl aus der gleichen Richtung un mit ähnlichem Effect.
Das bringt echt was, wenn auch nicht die volle Erwartung.

Ich hatte die Hoffnung, daß man mit Zeigern das so wie mit Listen machen kann.
So etwas wie SWAP wär schon mal ganz super. Noch geiler wäre es in Purebasic z.B. ein Listviewgadget zu erstellen , und dann nur noch die Zeiger auf Structs zu stllen, oder sogar mit einem Basis-Zeiger die ganze Viewlist auf eine list.scruct zu stellen.

Ihr wißt ja, die Hoffnung stirbt zuletzt.

bis dahin aber zuerst mal :praise: