![]() |
AW: String in TObjectList suchen
TObjectList enthält bereits eine
![]() |
AW: String in TObjectList suchen
Schau mal in die Hilfe zu "High()" und dann überleg was "High(List[List.Count - 1].iAnzahl)" deiner Meinung nach zurück gibt.
|
AW: String in TObjectList suchen
@DeddyH: Da stimme ich dir zu, wenn die TObjectList bereits einen Sortieralgorithmus besitzt, werde ich diesen auch nehmen. Bis dato wusste ich davon aber noch nicht.
@DeddyH & Blup: Mit dem High(...) möchte ich sagen, dass er von Beginn der List bis zum höchsten Indexwert durchgeht und sortiert - naja, zumindest habe ich mir das gedacht. |
AW: String in TObjectList suchen
Schau doch bitte mal nach:
![]() |
AW: String in TObjectList suchen
Zitat:
Wenn das so ist, würde ja sowie so dein Vorschlag bezüglich der integrierten Sortiermethode greifen DeddyH. Ich glaube jetzt muss ich mich da erstmal reinlesen, danke für die Hilfe bis hierhin. Gruß Jan |
AW: String in TObjectList suchen
iAnzahl dürfte ja ein Ordinaltyp (Integer?) sein. Also gibt High(List[List.Count - 1].iAnzahl) immer denselben Wert zurück, nämlich den des maximal möglichen für den Typ von iAnzahl, im Falle von Integer also MAXINT.
|
AW: String in TObjectList suchen
Ja das ist richtig, iAnzahl ist ein Integer. Ich wollte aber gar nicht den Maximalwert der Integers wiedergeben, sondern den der TOjectList. :gruebel:
Ich hatte mir jetzt mal, die Sortierfunktion der TObjectList angeschaut, diese ist aber gar nicht anders als meine, kann das sein? Mein Problem liegt daran, dass ich nicht genau weiß, wie ich auf die Richtige "Spalte" der TObjectList zugreife, also auf iAnzahl und danach sortiere und das richtig ausgebe... :glaskugel: |
AW: String in TObjectList suchen
Warum nicht einfach einen
Delphi-Quellcode:
IComparer<T>
![]() Dann kann man ganz simpel mit ![]() |
AW: String in TObjectList suchen
Die Sortierung an sich übernimmt die Liste selbst, Du musst nur die Vergleichsfunktion schreiben, die festlegt, wann ein Item "kleiner" als das andere ist. Diese Vergleichsfunktion kannst Du sogar beim Aufruf als anonyme Methode übergeben. Ungetestet:
Delphi-Quellcode:
Für TComparer musst Du noch die Unit Generics.Defaults einbinden.
List.Sort(TComparer<TWort>.Construct(
function(const Left, Right: TWort): integer begin Result := Left.iAnzahl - Right.iAnzahl; end)); |
AW: String in TObjectList suchen
Also das Vergleichen habe ich ja bereits mit DeddyH's Methode erfolgreich lösen können, die habe ich für meine Belange umgewandelt und integriert.
Einzig diese Sortierfunktion steht mir im Wege. Wobei ich glaube, dass es weniger die Funktion, als mein Verständnis dafür ist. :wall: Zitat:
Ich habe eine Funktion mit zwei Variablen? des Typs TWort. Der Rückgabewert ist ein Integer. Die Rechnung besagt: Links weniger rechts. Bsp.: 4, 9 - Dann sollte jetzt 9 mit 4 getauscht werden. Result = 5. Aber was bringt mir dieses Result? Ich möchte im Enddefekt die nach der Anzahl sortierte Liste in einem weiteren Memofeld ausgeben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 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