große Tabellen im ListViewGadget umsortieren

Für allgemeine Fragen zur Programmierung mit PureBasic.
reiner jakob
Beiträge: 23
Registriert: 03.08.2010 15:15

große Tabellen im ListViewGadget umsortieren

Beitrag 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.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Re: große Tabellen im ListViewGadget umsortieren

Beitrag 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
reiner jakob
Beiträge: 23
Registriert: 03.08.2010 15:15

Re: große Tabellen im ListViewGadget umsortieren

Beitrag 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.
reiner jakob
Beiträge: 23
Registriert: 03.08.2010 15:15

Re: große Tabellen im ListViewGadget umsortieren

Beitrag von reiner jakob »

Schluck .... Das verdauen...dauert
melde mich später.
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: große Tabellen im ListViewGadget umsortieren

Beitrag 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.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: große Tabellen im ListViewGadget umsortieren

Beitrag 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) )
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
reiner jakob
Beiträge: 23
Registriert: 03.08.2010 15:15

Re: große Tabellen im ListViewGadget umsortieren

Beitrag 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:
Antworten