Einzelnen Beitrag anzeigen

aphexx

Registriert seit: 23. Apr 2010
19 Beiträge
 
#17

AW: Memo lässt Zeilen verschwinden

  Alt 30. Mär 2011, 14:07
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. Delphi-Referenz durchsuchenTStringList.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;
  Mit Zitat antworten Zitat