Autor Beitrag
Kri
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 118



BeitragVerfasst: Fr 28.12.07 16:54 
Hallo zusammen,

man stelle sich ein Programm mit 2 ListBoxes vor:

In der ersten ListBox stehen mehrere Geburtsdatumen,
In der zweiten ListBox stehen mehrere Namen.
(Der Name ist dem Datum zugehörig, d.h das ListBox1.Items[1] gehört zu ListBox2.Items[1] usw.)

Nun will ich 2 Buttons setzten,
der erste Button soll nach datum (ListBox1.Sorted:=true),
der zweite Button soll nach Name (ListBox2.Sorted:=true) sortieren.

Meine Problematik die ich euch nahelegen möchte besteht darin, dass wenn ich z.b. nach datum sortieren, dass das datum ja nun nicht mehr mit den namen übereinstimmen..

Gibt es eine Lösung, dass ich praktisch den Sortieralgorythmus der 1. ListBox auf die 2. ListBox und andersherum "übertrage"?

Gruß
Kri


Moderiert von user profile iconUGrohne: Topic aus Sonstiges (Delphi) verschoben am Fr 28.12.2007 um 17:27
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Fr 28.12.07 18:27 
Selbst sortieren und beide parralel umschichten.
Alternativ könntest du die Daten in einen eigenen Datentypen packen, diese selbst sortieren und die ListBoxen nur zur anzeige verwenden.

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
Kri Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 118



BeitragVerfasst: Sa 29.12.07 12:56 
..aber einen festgelegten befehl dafür gibt es nicht? das wollte ich wissen, vielen dank..

gruß
kri
Kri Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 118



BeitragVerfasst: Di 08.01.08 01:40 
hab das ganze über Bubblesort (glaub ich ma) geregelt

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
var
  done: boolean;
  i, n: integer;
  Dummy1, Dummy2: string;

begin
  n:=ListBox1.Items.Count;
   repeat
    done:=true;
     for i := 0 to n-2 do
      if ListBox1.Items[i] > ListBox1.Items[i+1] then
       begin
        //LB1
        Dummy1:=ListBox1.Items[i];
        ListBox1.Items[i]:=ListBox1.Items[i+1];
        ListBox1.Items[i+1]:=Dummy1;
        //LB2
        Dummy2:=ListBox2.Items[i];
        ListBox2.Items[i]:=ListBox2.Items[i+1];
        ListBox2.Items[i+1]:=Dummy2;
       done:=false;
     end;
   until done;
end;



Grüße
Kri