![]() |
Objekte nach Datum Sortieren
Ich habe eine Klasse TTerminKalender mit einer ObjectList, die Elemente meiner Klasse TTermin enthält. Nun möchte ich die Objekte in dewr ObjectList nach dem Datem (Eigenschaft von TTermin) sortieren. So geht es, aber geht es besser?
Delphi-Quellcode:
procedure TTerminKalender.Sort;
var i, j: Integer; begin for i := 0 to FTerminListe.Count - 2 do for j := i + 1 to FTerminListe.Count - 1 do if TimeToStr(TTermin(FTerminListe.Items[i]).Time) > TimeToStr(TTermin(FTerminListe.Items[j]).Time) then Tausche(TTermin(FTerminListe.Items[i]), TTermin(FTerminListe.Items[j])); end; procedure TTerminKalender.Tausche(AOne, ATwo: TTermin); var lTemp: TTermin; begin lTemp := TTermin.Create(0, 0,''); try lTemp.Time := AOne.Time; lTemp.Text := AOne.Text; AOne.Time := ATwo.Time; AOne.Text := ATwo.Text; ATwo.Time := lTemp.Time; ATwo.Text := lTemp.Text; finally lTemp.Free; end; end; |
Re: Objekte nach Datum Sortieren
-Statt Bubble-Sort QuickSort verwenden
-Beim Einfügen an richtige Stelle einfügen |
Re: Objekte nach Datum Sortieren
Such dir einen besseren
![]() |
Re: Objekte nach Datum Sortieren
dann eben nicht...
|
Re: Objekte nach Datum Sortieren
Delphi-Quellcode:
Sieht nun so aus. Time ist vom Typ TDateTime. :)
procedure TTerminKalender.Sort;
procedure Swap(AOne, ATwo: TTermin); var lTemp: TTermin; begin lTemp := TTermin.Create(0, 0,''); try lTemp.Time := AOne.Time; lTemp.Text := AOne.Text; AOne.Time := ATwo.Time; AOne.Text := ATwo.Text; ATwo.Time := lTemp.Time; ATwo.Text := lTemp.Text; finally lTemp.Free; end; end; var i, j: Integer; begin for i := 0 to FTerminListe.Count - 1 do for j := 0 to FTerminListe.Count - 2 do if TimeToStr(TTermin(FTerminListe.Items[j]).Time) > TimeToStr(TTermin(FTerminListe.Items[j + 1]).Time) then Swap(TTermin(FTerminListe.Items[j]), TTermin(FTerminListe.Items[j + 1])); end; |
Re: Objekte nach Datum Sortieren
Was soll das mit dem "tauschen" ? Soll die Liste umsortiert werden, oder soll sie nur nach irgendeinem Kriterium sortiert angzeigt/durchlaufen werden ? Kleiner, aber feiner Unterschied ! Desweiteren würde mich mal der genaue Aufruf der Sort-Prozedur im Programm interessieren.
|
Re: Objekte nach Datum Sortieren
Zitat:
Zitat:
Delphi-Quellcode:
myTerminKalender.Sort;
|
Re: Objekte nach Datum Sortieren
Hi,
das wird so nicht funktionieren. 01.03.2008 01.02.2008 01.01.2008 wird zu 01.02.2008 01.03.2008 01.01.2008 das ist IMHO unsortiert ;) Gruß |
Re: Objekte nach Datum Sortieren
Wieso wird eigentlich zum Vergleich in String konvertiert? Man kann TDateTime doch direkt vergleichen.
|
Re: Objekte nach Datum Sortieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz