Einzelnen Beitrag anzeigen

Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#4

Re: BubbleSort graphisch darstellen

  Alt 17. Jan 2004, 15:48
so z.B.:
Delphi-Quellcode:
procedure TForm1.Bubblesort1Click(Sender: TObject);
begin
  Timer1.Enabled := True;
end;
procedure Timer1Timer(Sender:TObject);
begin
var i,j,Platz:integer;
    speicherf:array[0..1] of tedit;
begin
  for i:=19 downto 1 do
    for j:=1 to i do
      if strtoint(Feld[j].Text) > strtoint(Feld[j+1].text) // wenn die Zahl in Feld j größer
                                                           // ist als in deren Nachfolgerfeld
        then begin
          Feld[j].Top:=30; //Feld j wird graphisch heraufgesetzt (normal:200)
          platz:=Feld[j+1].Left; //Left-Wert des Nachfolgerfeldes wird gespeichert
          Feld[j+1].Left:=Feld[j].left; //Rechtes Feld wird nach links verschoben
          Feld[j].Left:=platz; //Linkes Feld (weiter oben) wird nach rechts verschoben
          Feld[j].top:=200; //Feld wird wieder in die Edit-Felder-Reihe reingesetzt
          Speicherf[0]:=Feld[j];
          Feld[j]:=Feld[j+1];
          Feld[j+1]:=Speicherf[0]; //Die Felder bekommen ihre Definition erneuert,
                                        //so dass es nachher nicht zu Verwechslungen kommt
                                        //(Feld an Position 1 ist dann edit1 etc.)
          Application.ProcessMessages; // gibt Application chance, die Veränderungen auf den
                                        // Bildschirm zu bringen

          Break; // bricht die Schleife ab
      end;
end;
Wenn Du nun den Timer auf Intervall = 1000 setzt, so macht er alle 1000 Millisekunden einen Sortierschritt.
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat