[Lazarus] Can't make working sorting inTListView
Flávio Etrusco
flavio.etrusco at gmail.com
Mon Jul 29 16:57:17 CEST 2013
On Mon, Jul 29, 2013 at 10:20 AM, Geoffray Levasseur-Brandin
<jeff.levasseur at free.fr> wrote:
> Hello all !!
>
> I've got a problem with the following code :
>
> procedure TfMain.lvPackageListColumnClick(Sender: TObject; Column:
> TListColumn);
> begin
> if Column.Index = FLastSortedColumn then
> FAscending := not FAscending
> else
> FLastSortedColumn := Column.Index;
> lvPackageList.SortColumn := Column.Index;
> end;
>
> procedure TfMain.lvPackageListCompare(Sender: TObject; Item1, Item2:
> TListItem;
> Data: Integer; var Compare: Integer);
> begin
> case Data of
> 0: Compare := AnsiCompareText(Item1.Caption, Item2.Caption); //pkgname
> 1: Compare := CompareVersion(Item1.SubItems[0], Item2.SubItems[0]);
> //installed version
> 2: Compare := CompareVersion(Item1.SubItems[1], Item2.SubItems[1]); //last
> version
> 3: Compare := CompareInstSize(Item1.Caption, Item2.Caption); //installed
> size
> 4: Compare := CompareDefSize(Item1.Caption, Item2.Caption); //pkgsize
> 5: Compare := AnsiCompareText(Item1.SubItems[4], Item2.SubItems[4]);
> //description
> end;
> if not FAscending then
> Compare := -Compare;
> end;
>
> Whatever the column I'm clicking on it's always sorting the first column. I do
> really not understand what's wrong. All the functions I've made giving Compare
> its value returns correctly 1 if Itme1 > Item2, 0 if equal and -1 if Item1 <
> Item2.
I'm not really sure how TListView is supposed to work, however by
debugging the code I can see 'Data' is always 0. Maybe you're supposed
to just use ListView.SortColumn.
-Flávio
> Thanks for any help.
> --
> Geoffray « Fatalerrors » Levasseur-Brandin
> <jeff.levasseur at free.fr>
> <geoffray.levasseur-brandin at ac-toulouse.fr>
> http://www.geoffray-levasseur.org/
> http://0.tuxfamily.org/
> GNU/PG key : BF8BB8407CD26E89466CDA9BB1030FC59EF87775
> Errare humanum est sed perseverare diabolicum aut cretinum.
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>
More information about the Lazarus
mailing list