Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TObjectList sortieren funktioniert nicht (https://www.delphipraxis.net/72062-tobjectlist-sortieren-funktioniert-nicht.html)

Brainstalker 24. Jun 2006 22:03


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:
function CompareStr(Item1, Item2: Pointer): Integer;
begin
  Result := CompareText((Item1 as TStringList).Strings[0], (Item2 as TStringList).Strings[0]);
end;
Bei dieser Funktion meckert er immer bei Item1 as TStringList: Operator not applicable to this operand type. Wie so geht das denn nicht?

Freue mich über Antworten.

Muetze1 24. Jun 2006 22:05

Re: TObjectList sortieren funktioniert nicht
 
Weil ein Pointer kein Objekt ist und somit nicht gecastet werden kann. Entweder mache es so:
Delphi-Quellcode:
function CompareStr(Item1, Item2: Pointer): Integer;
begin
  Result := CompareText((TObject(Item1) as TStringList).Strings[0], (TObject(Item2) as TStringList).Strings[0]);
end;
... oder direkt

Delphi-Quellcode:
function CompareStr(Item1, Item2: Pointer): Integer;
begin
  Result := CompareText(TStringList(Item1).Strings[0], TStringList(Item2).Strings[0]);
end;

Brainstalker 24. Jun 2006 22:16

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!

Muetze1 24. Jun 2006 22:35

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