![]() |
ObjectList nach Datum sortieren
Hi,
ich versuche gerade die Items einer ObjectList nach Datum zu sortieren. Die Sortierroutine soll direkt beim hinzufügen eines Items aufgerufen werden. Erstmal mein Code:
Delphi-Quellcode:
Da es bei der ObjectList kein CustomSort gibt, dachte ich, dieses Sort könnte man genauso aufrufen wie hier:
function TCalcForm.Add(Value: TCalcFormValue):Integer;
var i: Integer; begin fValues.Add(Value); fValues.Sort(CompareDate); //Fehler: [Pascal Fehler] CalcForm.pas(106): E2009 Inkompatible Typen: 'Reguläre Prozedur und Methodenzeiger' for i := 0 to fValues.Count -1 do //damit der Rückgabewert wieder dem ItemIndex des neuen Objekts entspricht begin if fValues[i] = Value then Result := i; end; end; function TCalcForm.CompareDate(Item1, Item2: Integer):Integer; var Val1, Val2: TDateTime; begin val1 := (fValues[Item1] as TCalcFormValue).Date; val2 := (fValues[Item2] as TCalcFormValue).Date; Result := CompareDate(Val1, Val2); end; ![]() Die Delphi-Hilfe spuckt mir folgendes aus: procedure Sort(Compare: TListSortCompare); Es gibt leider keinen Hilfeeintrag zu TListSortCompare. Wie komme ich trotzdem an mein Ziel? |
Re: ObjectList nach Datum sortieren
Hallo Andreas,
du darfst deine Sort-Funktion CompareDate() nicht als Methode der Form deklarieren. Grüße vom marabu |
Re: ObjectList nach Datum sortieren
Zitat:
|
Re: ObjectList nach Datum sortieren
So wie dokumentiert:
Delphi-Quellcode:
function CompareDate(Item1, Item2: Pointer): Integer;
var Val1, Val2: TDateTime; begin val1 := TCalcFormValue(Item1).Date; val2 := TCalcFormValue(Item1).Date; Result := DateUtils.CompareDate(Val1, Val2); end; |
Re: ObjectList nach Datum sortieren
Zitat:
ein kleiner Vertipper:
Delphi-Quellcode:
val2 := TCalcFormValue(Item2).Date;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 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