<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2013/7/29 Flávio Etrusco <span dir="ltr"><<a href="mailto:flavio.etrusco@gmail.com" target="_blank">flavio.etrusco@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

On Mon, Jul 29, 2013 at 10:20 AM, Geoffray Levasseur-Brandin<br>
<<a href="mailto:jeff.levasseur@free.fr">jeff.levasseur@free.fr</a>> wrote:<br>
> Hello all !!<br>
><br>
> I've got a problem with the following code :<br>
><br>
> procedure TfMain.lvPackageListColumnClick(Sender: TObject; Column:<br>
> TListColumn);<br>
> begin<br>
>   if Column.Index = FLastSortedColumn then<br>
>     FAscending := not FAscending<br>
>   else<br>
>     FLastSortedColumn := Column.Index;<br>
>   lvPackageList.SortColumn := Column.Index;<br>
> end;<br>
><br>
> procedure TfMain.lvPackageListCompare(Sender: TObject; Item1, Item2:<br>
> TListItem;<br>
>   Data: Integer; var Compare: Integer);<br>
> begin<br>
>   case Data of<br>
>     0: Compare := AnsiCompareText(Item1.Caption, Item2.Caption); //pkgname<br>
>     1: Compare := CompareVersion(Item1.SubItems[0], Item2.SubItems[0]);<br>
> //installed version<br>
>     2: Compare := CompareVersion(Item1.SubItems[1], Item2.SubItems[1]); //last<br>
> version<br>
>     3: Compare := CompareInstSize(Item1.Caption, Item2.Caption); //installed<br>
> size<br>
>     4: Compare := CompareDefSize(Item1.Caption, Item2.Caption); //pkgsize<br>
>     5: Compare := AnsiCompareText(Item1.SubItems[4], Item2.SubItems[4]);<br>
> //description<br>
>   end;<br>
>   if not FAscending then<br>
>     Compare := -Compare;<br>
> end;<br>
><br>
> Whatever the column I'm clicking on it's always sorting the first column. I do<br>
> really not understand what's wrong. All the functions I've made giving Compare<br>
> its value returns correctly 1 if Itme1 > Item2, 0 if equal and -1 if Item1 <<br>
> Item2.<br>
<br>
I'm not really sure how TListView is supposed to work, however by<br>
debugging the code I can see 'Data' is always 0. Maybe you're supposed<br>
to just use ListView.SortColumn.<br></blockquote></div><br clear="all"></div><div class="gmail_extra"><a href="http://www.delphitips.net/2008/04/10/sort-listview-by-clicking-on-columns/">http://www.delphitips.net/2008/04/10/sort-listview-by-clicking-on-columns/</a> and <a href="http://stackoverflow.com/questions/15605509/sorting-tlistview-columns-cont-ascending-descending">http://stackoverflow.com/questions/15605509/sorting-tlistview-columns-cont-ascending-descending</a> both use directly the columns instead of the Data parameter. IIRC, that's how I did it the few times I used TListView. I don't know what Data is for, though.<br>

</div><div class="gmail_extra"><br>-- <br>Frederic Da Vitoria<br>(davitof)<br><br>Membre de l'April - « promouvoir et défendre le logiciel libre » - <a href="http://www.april.org" target="_blank">http://www.april.org</a><br>


</div></div>