Hallo,
Ich habe auch so ein Problem. Mein Programm erstellt beliebig viele ListBox-Einträge. Es geht um eine Punktetabelle, die dann natürlich bei listbox.sorted:=true falsch rum sortiert wird.
Wie kann ich das ganze jetzt umkehren? Ist das möglich?
Idee Nummer 1: Die Einträge nach dem Sortieren vertauschen
Den ersten und letzten Eintrag kann ich ja ohne Probleme austauschen lassen. Aber wenn es mehrere Einträge sind, kann man das dann auch irgendwie machen?
Code:
listbox1.Sorted:=true;
if listbox1.count > 1
then begin
listbox1.Items.Exchange(listbox1.Count-1,listbox1.Count-listbox1.count);
end;
Idee Nummer 2: Selbst sortieren
Oder das ganze vllt mit einer extra Prozedur regeln? Habe hier mal zwei, allerdings kommt da dann beim "then begin" bzw. "do begin" ein Fehler.
Code:
procedure sortieren;
var i,j,k,m:byte;
puffer:pointer;
listbox1:TList;
begin
for j:=1 to (m-1) do begin
for i:=j+1 to m do
if listbox1.Items[j]>listbox1.Items[i] then begin
puffer:=listbox1.Items[j];
listbox1.Items[j]:=listbox1.Items[i];
listbox1.Items[i]:=puffer;
end;
end;
end;
Code:
procedure sortieren;
var
temp, i:byte;
listbox1: TList;
begin
for i:=0 to (listbox1.Count / 2) do begin
temp := listbox1.Items[i];
listbox1.Items[i] := listbox1.Items[listbox1.Count - 1 - i];
listbox1.Items[listbox1.Count - 1 - i] := temp;
end;
end;
Wäre überaus nett, wenn mir jemand helfen kann.