[Lazarus] Sorting StringGrid by column click

Jesus Reyes jesusrmx at yahoo.com.mx
Fri May 13 20:28:00 CEST 2011



--- El vie 13-may-11, Juha (gmail) <juha.manninen62 at gmail.com> escribió:

> De: Juha (gmail) <juha.manninen62 at gmail.com>
> Asunto: Re: [Lazarus] Sorting StringGrid by column click
> A: "Lazarus mailing list" <lazarus at lists.lazarus.freepascal.org>
> Fecha: viernes, 13 de mayo de 2011, 5:46
> Jesus Reyes kirjoitti torstai, 12.
> toukokuuta 2011 22:33:50:
> > Just let's not forget that this is a generic *string*
> grid, why users
> > should expect it to sort numbers when the grid is
> specifically made to
> > hold strings?
> 
> Yes. If some columns could be defined to hold numbers and
> then sorted 
> accordingly, should we implement validity and integrity
> checks, too? We would 
> basically create a database.
> 
> 
> > Appart from strings, the grid already supports Custom
> Sorting, so it can
> > sort any way the user wants, even numbers. Just write
> an handler for
> > OnCompareCells, this is even documented:
> > http://wiki.lazarus.freepascal.org/Grids_Reference_Page#Sorting_Columns_or
> > _Rows
> 
> Yes and Custom Sorting can be used also when automatic
> column sorting is 
> enabled through ColumnClickSorts property.
> I realized SortOrder support for custom sorting is now
> important because 
> column clicking automatically switches SortOrder. I added
> the parameter to 
> TOnCompareCells. It breaks old code but the fix is easy and
> there is no Delphi 
> compat issue because Delphi doesn't have such event.
> 

I'm sorry this patch must be reverted, there is no reason to send SortOrder as parameter when SortOrder is a grid's public property.

And as you said it unnecessarily breaks code, for example semaphore grid which is included with Lazarus which by the way has exteneded sorting capabilities.

> I will return to Alexander's ideas of sort images later.
> The current code 
> however is usable in every use case, including numeric
> custom sort and also 
> user defined sort glyps (by not enabling
> ColumnClickSorts).

I'm sorry I still have to review the code been too busy lately, but I was thinking that maybe we don't need default icons for ordering direction, first we need to check if the lcl do not use some similar resources, if it doesn't, I think as a default we could just draw it ourselves.

> 
> Juha
> 

Jesus Reyes A.




More information about the Lazarus mailing list