Re: ListView sort problem
- Posted by Pete Lomax <petelomax at blueyonder.co.uk> May 13, 2005
- 476 views
On Fri, 13 May 2005 04:49:34 -0700, Al Getz <guest at RapidEuphoria.com> wrote: >> >I'll have to take a look at it. Is it by any chance using the mode >> >where the application stores the data, not the Listview? >> Yes >Hi again Pete, > >Ok, then i have to ask a question... > >Does your Listview wrapping save *each* LV_ITEM structure for every >subitem so that the notification simply looks up the LV_ITEM and >passes it through the dispatch structure, or... >does it lookup the text in a sequence and then create a new LV_ITEM >for the dispatch structure? As I understand it, using LVS_OWNERDATA, causes windows to send 85 LVN_GETDISPINFO messages to display 17 rows of 5 columns, each of which I respond to using 4 peeks and one poke, which is a negligible overhead for a screen update. The benefit is that the sort op is one LVN_COLUMNCLICK message, which I respond to using just one peek, an RDS sort, and one LVM_UPDATE message. Another benefit is that it takes approximately 0.0 seconds to load and display the listview. The only LV_ITEM anywhere in sight is the one windows supplies for me to fill in, (85 times per screen) I've migrated the fastlv.exw from win32lib to arwen and included it on my web page, along with the latest arwen mods: http://palacebuilders.pwp.blueyonder.co.uk/edita.htm#misc It is easily over 100 times faster than my demo_lists.exw (also included) when sorting 5000 records, as that does over 200,000 peeks and pokes within the compare function of the sort, along with 135,000 sendMessage calls to retrieve the Listview data from windows, kinda puts 425 peeks&pokes into perspective. ) Regards Pete