You must implement a Custom IComparer
function passing this implementation to the Sort
method of the System.Generics.Collections.TObjectList
class, you can do this using an anonymous with a method with the System.Generics.Defaults.TComparer
like so .
FMyScheduleList.Sort(TComparer<TMySchedule>.Construct(
function (const L, R: TMySchedule): integer
begin
if L.ADate=R.ADate then
Result:=0
else if L.ADate< R.ADate then
Result:=-1
else
Result:=1;
end
));
As @Stefan suggest also you can use CompareDate
function which is defined in the System.DateUtils
unit.
FMyScheduleList.Sort(TComparer<TMySchedule>.Construct(
function (const L, R: TMySchedule): integer
begin
Result := CompareDate(L.ADate, R.ADate);
end
));