[Lazarus] Sorting StringGrid by column click
Juha (gmail)
juha.manninen62 at gmail.com
Fri May 13 15:26:54 CEST 2011
Juha (gmail) kirjoitti perjantai, 13. toukokuuta 2011 13:46:08:
> 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.
And now I realized the result could be negated based on SortOrder after
calling OnCompareCells instead of letting the user take care of it, like this:
function TCustomGrid.DoCompareCells(Acol, ARow, Bcol, BRow: Integer): Integer;
begin
result := 0;
if Assigned(OnCompareCells) then begin
OnCompareCells(Self, ACol, ARow, BCol, BRow, FSortOrder, Result);
if SortOrder=soDescending then
result:=-result;
end;
end;
Which way is better? I think the Descending-sort code is always identical:
if SortOrder=soDescending then
result:=-result;
and it could be better if users don't need to worry about it.
Juha
More information about the Lazarus
mailing list