Delphi has no properties AutoSort, SortColumn and SortDirection nor methods BeginUpdate and EndUpdate. I would provide a patch which will set Flag lffPreparingSorting on BeginUpdate and reset it on EndUpdate. +one additional call of Sort on EndUpdate (maybe only if AutoSort is True) OR move Sort; form protected to public. What is preferred? V. ______________________________________________________________
Od: "Vojtěch Čihák" <vojtech.ci...@atlas.cz> Komu: Lazarus mailing list <lazarus@lists.lazarus.freepascal.org> Datum: 14.04.2015 15:23 Předmět: Re: [Lazarus] Strange Alphasort in ListView
I understand. Method Sort; is protected (as it is in Delphi). You have probably no other choice than do ListView1.SortDirection:=sdDescending; ListView1.SortDirection:=sdAscending; which works but it is unefficient, sorting is done twice. I tried: ListView1.BeginUpdate; ListView1.SortDirection:=sdDescending; ListView1.EndUpdate; ListView1.SortDirection:=sdAscending;but it doesn't help, sorting is still done twice (at least on Qt).ListView has some flags to avoid sorting but those flags are private.V. ______________________________________________________________
Od: "Valdas Jankūnas" <zmu...@gmail.com> Komu: Lazarus mailing list <lazarus@lists.lazarus.freepascal.org> Datum: 14.04.2015 15:02 Předmět: Re: [Lazarus] Strange Alphasort in ListView
2015.04.14 15:34, Vojtěch Čihák rašė:
No, it isn't a bug. In sources, you can see comment: function AlphaSort: Boolean; // always sorts column 0 in sdAscending order
Looked not in *primary* source (Google, Documentation) :)
So if you want other sorting, you must set three sort-related properties: ListView1.SortColumn:=1; ListView1.SortDirection:=sdAscending; ListView1.SortType:=stText; It works, I just tested in Qt.
Why I came to AlphaSort: in my source ListView is cleared (columns stays same) and populated with new info. After that current column (say SortColumn=1) is no sorted (Autosort is TRUE; tried in Qt, Gtk2 and Win) so I must somehow to trigger sorting. But how?
-- Valdas Jankūnas -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus <http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus> ---------- -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus <http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus>
-- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus