![]() |
TObjectList sortieren funktioniert nicht
Hallo ich würde in meinem Projekt die TObjectList Items gerne sortieren. Das Problem ist das die Comparefunktion nicht will.
In der Liste sind TStringList Objekte abgelegt und da wollte ich nach dem ersten Eintrag sortieren.
Delphi-Quellcode:
Bei dieser Funktion meckert er immer bei Item1 as TStringList: Operator not applicable to this operand type. Wie so geht das denn nicht?
function CompareStr(Item1, Item2: Pointer): Integer;
begin Result := CompareText((Item1 as TStringList).Strings[0], (Item2 as TStringList).Strings[0]); end; Freue mich über Antworten. |
Re: TObjectList sortieren funktioniert nicht
Weil ein Pointer kein Objekt ist und somit nicht gecastet werden kann. Entweder mache es so:
Delphi-Quellcode:
... oder direkt
function CompareStr(Item1, Item2: Pointer): Integer;
begin Result := CompareText((TObject(Item1) as TStringList).Strings[0], (TObject(Item2) as TStringList).Strings[0]); end;
Delphi-Quellcode:
function CompareStr(Item1, Item2: Pointer): Integer;
begin Result := CompareText(TStringList(Item1).Strings[0], TStringList(Item2).Strings[0]); end; |
Re: TObjectList sortieren funktioniert nicht
Hm Ok stimmt, irgendwie klar. Hatte bloß den Code den ich oben gepostet hatte hier im Forum gefunden. Ich hatte den bloß ein bisschen modifiziert, sollte angeblich aus der Delphi Hilfe gewesen sein.
Vielleicht hab ich auch nur was durcheinander gebracht, egal jetzt geht es dankeschön! |
Re: TObjectList sortieren funktioniert nicht
Nein, die Delphi Hilfe hatte das auch drinne - sie ist halt nicht fehlerfrei...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 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