Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Zahlen Sortieren in TListBox (https://www.delphipraxis.net/20722-zahlen-sortieren-tlistbox.html)

faux 22. Apr 2004 06:33


Zahlen Sortieren in TListBox
 
Hallo,

gibts eine Möglichkeit Zahlen in einer TListBox zu sortieren ohne das zu erziehlen:

1
11
5
51
9

sondern

1
5
9
11
51

Cuchulainn 22. Apr 2004 06:47

Re: Zahlen Sortieren in TListBox
 
Hallo,

du müsstest mit einem Sortieralgorithmus arbeiten. Da gibt es mehrere, z.B. BubbleSort oder InsertionSort. Sie sind auf dieser Seite gut erklärt: Delphiseiten
Sieh einfach unter Punkt 10.4. - Sortieralgorihmen nach.
Vielleicht gibt es eine einfachere Möglichkeit, aber die kenne ich dann nicht. Ich glaube es allerdings auch nicht.

s14 22. Apr 2004 06:49

Re: Zahlen Sortieren in TListBox
 
Hallo,
such mal im Forum nach Hier im Forum suchenzahlen sortieren Tlistbox

Muetze1 22. Apr 2004 08:41

Re: Zahlen Sortieren in TListBox
 
Moin!

Wenn du beim sortieren bisher immer sowas
Zitat:

Zitat von faux
1
11
5
51
9

schon erreichst hast, dann musst du deinen Sortiercode nur ein klein wenig umändern, weil dieser bisher die Strings vergleich anstatt der Zahlen an sich. Du musst beim Vergleich um beide Parameter ein StrToInt() rumschreiben und es sollte funktionieren...

MfG
Muetze1

faux 22. Apr 2004 15:11

Re: Zahlen Sortieren in TListBox
 
Zitat:

Zitat von Muetze1
...dann musst du deinen Sortiercode nur ein klein wenig umändern, weil dieser bisher die Strings vergleich anstatt der Zahlen an sich. Du musst beim Vergleich um beide Parameter ein StrToInt() rumschreiben und es sollte funktionieren...

MfG
Muetze1

Das ist nicht mein Sortieralgorithmus, sondern der Standardalgorithmus von Delphis TListBox

s14 22. Apr 2004 15:22

Re: Zahlen Sortieren in TListBox
 
Noch mal, hier ist die Lösung:

Hier im Forum suchensortieren TListbox Keine Fehlerbehandlung

StefanDP 22. Apr 2004 15:33

Re: Zahlen Sortieren in TListBox
 
nimm statt einer listbox eine listview und schreibe in die OnCompare:

Code:
procedure TForm1.ListViewCompare(Sender: TObject; Item1, Item2: TListItem;
  Data: Integer; var Compare: Integer);
begin
if StrToInt(Item1.Caption) < StrToInt(Item2.Caption) then
  Compare := 1
else
if StrToInt(Item1.Caption) > StrToInt(Item2.Caption) then
  Compare := -1
else
  Compare := 0;
end;
code getestet, wird in meinem aktuellen snakes-programm (highscoreliste) auch verwendet! :)
mfg
stefan

ggfan 22. Mär 2005 11:01

Re: Zahlen Sortieren in TListBox
 
Ich stell beider ListBox immer die Eigenschaft "sorted" auf True, dann
sortiert er es automaztisch, und ich muss gar nichts mehr tun.

Muetze1 22. Mär 2005 11:06

Re: Zahlen Sortieren in TListBox
 
Moin!

Bei Namen oder sonstigen ok, aber nicht bei Zahlen in dem Format wie faux sie gepostet hat - da nützt dir die Eigenschaft nix - und genau darum geht es. Wenn du dir die Beiträge durchgelesen hättest, dann wüsstest du dies...

MfG
Muetze1

ggfan 22. Mär 2005 15:50

Re: Zahlen Sortieren in TListBox
 
Sein Problem ist doch, dass die Zahlen unterschiedlich viele Stellen haben(1, 11, 5, 51 ,9). Wenn er es nun somacht:

01,
05,
09,
11,
51.

So mach ich das zumindest immer. Wenn er die Zahlen dann zurück in eine Integer umwandelt wahlen die Nullen dann wieder weg. Ist vielleicht nicht
elegant, funktioniert aber.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz