![]() |
Objektliste sortieren
Hi,
Kann man TObjectLists nur als string mit CompareText sortieren ? Momentan mache ich das so :
Delphi-Quellcode:
Aufruf so :
function VergleicheWerte (Item1, Item2: Pointer): Integer;
begin (* Result := CompareText(TDatenObject(Item1).name, TDatenObject(Item2).name); *) Result := CompareText(TDatenObject(Item1).nr, TDatenObject(Item2).nr); end;
Delphi-Quellcode:
Das auskommentierte geht. Wie soll ich jetzt die nr = integer behandeln ? Die Items haben auch noch real, boolean usw. Felder. Da gehts dann weiter. Muss da immer der Typ umgewandelt werden, oder gibt es Alternativen zu CompareText ? Unschön ist auch noch, dass Delphi Warnungen bringt wegen Pointer und @. Wie kriegt man die weg ?
RohDaten.Sort(@VergleicheWerte); // Rohdaten = TObjectList
|
Re: Objektliste sortieren
Hi,
eventuell mit Result := TDatenObject(Item1).nr - TDatenObject(Item2).nr ? Mfg FAlter |
Re: Objektliste sortieren
Hai Hansa,
ein CompareText auf einen Integerwert macht natürlich keinen Sinn. Warum gibst Du nicht einfach das gewünschte Ergebniss der Funktion direkt als Result zurück? |
Re: Objektliste sortieren
Für jeden Datentyp eine eigene Hilfsfunktion schreiben:
Delphi-Quellcode:
Aus Optimierungsgründen wird der Fall a=b als letztes abgehandelt, da die Wahrscheinlichkeit
function CompareInt(a,b:Integer):Integer;
begin if a > b then Result := 1 else if a < b then Result := -1 else Result := 0; // a = b end; viel geringer als a > b oder a < b ist. |
Re: Objektliste sortieren
Hi,
Zitat:
Mfg FAlter |
Re: Objektliste sortieren
Hai Hai,
So ungefähr ?
Delphi-Quellcode:
Das da bringt momentan Zugriffsverletzung. Dem wird das miit @ übergebene boolean nicht schmecken.
function VergleicheWerte (Item1, Item2: Pointer): boolean;
begin Result := TDatenObject(Item1).nr > TDatenObject(Item2).nr; end; |
Re: Objektliste sortieren
seit mindestens D7
![]()
Delphi-Quellcode:
uses Math;
function VergleicheWerte(Item1, Item2: Pointer): boolean; begin Result := CompareValue(TDatenObject(Item1).nr, TDatenObject(Item2).nr); end; |
Re: Objektliste sortieren
Zitat:
schaue Dir mal die beiden Beiträge von FAlter an. |
Re: Objektliste sortieren
Zitat:
|
Re: Objektliste sortieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:23 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 by Thomas Breitkreuz