![]() |
Re: Objekte nach Datum Sortieren
Zitat:
|
Re: Objekte nach Datum Sortieren
Zitat:
|
Re: Objekte nach Datum Sortieren
Du musst sogar eine Vergleichsfunktion schreiben und diese der Sort-Methode übergeben.
|
Re: Objekte nach Datum Sortieren
Zitat:
|
Re: Objekte nach Datum Sortieren
Das ist die Klasse, die die ObjectList enthält :zwinker:
|
Re: Objekte nach Datum Sortieren
Bei mir geht das so nicht :
Delphi-Quellcode:
Wer Fragen stellt, der sollte zumindest mal die eigene Syntax überprüfen und die Compilermeldungen nicht ignorieren. Da kann doch fast nur sowas kommen :
DatenObjektListe.Sort;//(@VergleicheWerte);
Zitat:
|
Re: Objekte nach Datum Sortieren
Seine Klasse hat anscheinend eine eigene Sort-Methode implementiert, steht ja im Ausgangspost. Nur wäre es dort sinnvoll, die Sort-Methode der enthaltenen ObjectList aufzurufen, dann sollte es keine Probleme geben und schnell ist das auch noch ;)
|
Re: Objekte nach Datum Sortieren
Zitat:
|
Re: Objekte nach Datum Sortieren
Und das sind auch ganz sicher TDate-Werte?
[edit] Gerade mal mit der D2009-Trial ausprobiert:
Delphi-Quellcode:
Tut genau, wie es soll[/edit]
...
type TMyClass = class private FDatum: TDate; public property Datum: TDate read FDatum write FDatum; end; ... function SortProc(Item1, Item2: Pointer): Integer; begin if TMyClass(Item1).Datum > TMyClass(Item2).Datum then Result := 1 else if TMyClass(Item1).Datum < TMyClass(Item2).Datum then Result := -1 else Result := 0; end; procedure TForm1.FormCreate(Sender: TObject); var dummy: TMyClass; begin FList := TObjectList.Create; dummy := TMyClass.Create; dummy.Datum := StrToDate('01.03.2008'); FList.Add(dummy); dummy := TMyClass.Create; dummy.Datum := StrToDate('01.02.2008'); FList.Add(dummy); dummy := TMyClass.Create; dummy.Datum := StrToDate('01.03.2007'); FList.Add(dummy); dummy := TMyClass.Create; dummy.Datum := StrToDate('01.04.2009'); FList.Add(dummy); dummy := TMyClass.Create; dummy.Datum := StrToDate('01.10.2008'); FList.Add(dummy); FList.Sort(@SortProc); //FList ist vom Typ TObjectList end; |
Re: Objekte nach Datum Sortieren
Bäume und Wald und so. :oops:
Delphi-Quellcode:
Danke für die Gedult und Mühe. :D
procedure TTerminKalender.Sort(AList: TStrings);
function CompareDate(Item1, Item2: Pointer): Integer; var Val1, Val2: TDateTime; begin val1 := TTermin(Item1).FTime; val2 := TTermin(Item2).FTime; Result := DateUtils.CompareDate(Val1, Val2); end; var i, j: Integer; begin for i := 0 to FTerminListe.Count - 2 do for j := i + 1 to FTerminListe.Count - 1 do if CompareDate(TTermin(FTerminListe.Items[i]), TTermin(FTerminListe.Items[j])) = 1 then FTerminListe.Exchange(i, j); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:07 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