BubbleSort? Die äußere Schleife High-1 oder in Deinem Fall
for i:=0 to max-2 do
.
oder war es die innere?
Für TStringList würde ich aber ganz klar die Methode CustomSort verwenden.
TStringList.CustomSort
OK, ich habe den Bubblesort nun umgeschrieben, doch das Problem besteht weiterhin, nur in anderem Gewand. Es wird bei aufsteigender Sortierung die 5. Nachricht nicht angezeigt und bei absteigender Sortierung die 2. Nachricht. Dein Tipp mit CustomSort ist etwas hanebüchen, da ich die einzelnen Text-Nachrichten ja nicht sortiere, sondern das Array of TEntry, welches aus 2 Strings und einmal TStringlist besteht.
Delphi-Quellcode:
procedure Sortieren(Aufsteigend: Boolean);
var
E: TEntry;
i, j, max: Integer;
x, y: TDateTime;
begin
E.Msg := TStringlist.Create;
max := Length(Entries);
for i:=Low(Entries) to High(Entries) do
for j:=Low(Entries) to High(Entries)-1 do
begin
DateSeparator := '.';
ShortDateFormat := 'dd.mm.yyyy';
LongTimeFormat := 'hh:nn:ss.zzz';
if Aufsteigend = True
then
begin
x := StrToDateTime(Entries[j].DatumZeit);
y := StrToDateTime(Entries[j+1].DatumZeit);
end
else
begin
x := StrToDateTime(Entries[j+1].DatumZeit);
y := StrToDateTime(Entries[j].DatumZeit);
end;
if x > y then
begin
E := Entries[j];
Entries[j] := Entries[j+1];
Entries[j+1] := E;
end;
end;
E.Msg.Clear;
end;