[Lazarus] Sorting StringGrid by column click

Juha (gmail) juha.manninen62 at gmail.com
Fri May 13 12:46:08 CEST 2011


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 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).

Juha




More information about the Lazarus mailing list