In einer ListBox sortieren
-
Hallo.
Ich habe eine Zahlenreihe und eine Funktion. Ich gebe die Funktion(Zahlenreihe) in einer ListBox aus. Also jedes Ergebniss bekommt eine neue Zeile.Nun möchte ich die LisBox nach dem Ergebniss sortieren.
Aber vor jedem Ergebniss soll auch der Wert stehen, den ich übergeben habe.
Sprich: Übergabe \t SortierterWertHabt ihr da eine Idee? weil wenn ich in der Stringlist vorher schon den ÜbergabeWErt schreibe - sortiert er danach
-
nimm TStringList und schau mal unter TStringList::CustomSort
-
Das habe ich ja getan. aber ich verstehe das nicht ganz.
gebe ich an welchen string er sortieren soll?
Muss ich bei Index1 das erste Zeichen des zu sortierenden Strings angeben und bei Index2 das letzte?und wie realisiere ich das, das ich den anfangswert davor stehen habe?
-
du legst die art fest wie sortiert werden soll:
//--------------------------------------------------------------------------- // Rückgabe: < 0 wenn Wert von Index1 kleiner als von Index2 ist // == 0 beide identisch // > 0 wenn Wert von Index1 grösser als von Index2 ist //--------------------------------------------------------------------------- int __fastcall MyCompare(TStringList *List, int Index1, int Index2) { // hier den Vergleich machen, wenn du Extrawerte hast, kannst du die // auch per Objects-Eigenschaft übergeben und hier dann auswerten // und entsprechend vergleichen. // angenommen die Liste enthält Zahlen, dann diese konvertieren // und vergleichen return StrToInt(List->Strings[Index1]) - StrToInt(List->Strings[Index2]); } void __fastcall TForm1::Button1Click(TObject *Sender) { TStringList *List = new TStringList(); // Werte reinfüllen // Liste sortieren mit eigener Sortierfunktion List->CustomSort(MyCompare); }
-
hmmm
Ich muss mal schauen.
ICh glaube das geht nicht so wie Ich das möchte.
dies Object - da Kann ich ja keinen String hinzufügen. sonst hätte ich da den startwert reingemacht - dann sortiert und dann erst den startwer + tab plus ergebniss gemacht