I'm using Generics.Collections.TList and Sort method. It is working ok, but I want to sort nulls or empty values last. In ascending and descending sort order. How to implement that?
Here is my sorting function:
function TForm.SortByColumn(ColumnID: integer; SortDirRev: integer):boolean;
var
Comparison: TComparison<TSymData>;
begin
Result := false;
Comparison := nil;
if ColumnID = 0 then
begin
Comparison := function(const Left, Right: TSymData): integer
begin
Result := SortDirRev * TComparer<string>.Default.Compare(Left.Name,Right.Name);
end;
end
else
begin
Comparison := function(const Left, Right: TSymData): integer
begin
Result := SortDirRev * TComparer<string>.Default.Compare(Left.Sub[ColumnID-1],Right.Sub[ColumnID-1]);
end;
end;
if assigned(Comparison) then
FSymList.Sort(TComparer<TSymData>.Construct(Comparison));
end;