Autor Beitrag
-delphin-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 200



BeitragVerfasst: Mi 21.09.05 15:00 
Also ich hab bei meinem BubbleSort-Algo eine Verzögerungsprozedur eingebaut, damit man sieht, wie er sortiert.
Das ist die BubbleSort-Prozedur:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
  //Hier startet der BubbleSort
  repeat
    nichtvertauscht:=true;
    for i:=0 to Length(Folge)-2 do
      if Folge[i] > Folge[i+1then
        begin
          Tausche(Folge[i], Folge[i+1]);
          nichtvertauscht:=false;
          Delay(SEDelay.Value); <-- Aufruf der Delay-Prozedur
        end;
  until nichtvertauscht;

und das die Delay-Prozedur:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure Delay(MSeconds : Longint);
var FTickCount : Longint;
Begin
  FTickCount := GetTickCount;
  Repeat Application.ProcessMessages;
  Until ((GetTickCount-FTickCount) >= MSeconds);
end;

Leider funktioniert es nur insofern, als dass er immer nur die vollständige Sortierung verzögert, das heißt er sortiert und gibt es verzögert aus, er soll aber verzögert sortieren, und währenddessen ausgeben..
Woran liegt das?
Thx 4 help :D
Grishnak
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 221

Windows XP Home
Delphi 7 PE, Delphi 2005 PE
BeitragVerfasst: Mi 21.09.05 15:21 
Wenn du willst, dass während des Sortierens eine Ausgabe erfolgt, dann musst du auch während des Sortierens eine Ausgabe vornehmen!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure FolgeAnzeigen;
begin
  [...]
end;

[...]

  //Hier startet der BubbleSort
  repeat
    nichtvertauscht:=true;
    for i:=0 to Length(Folge)-2 do
      if Folge[i] > Folge[i+1then
        begin
          Tausche(Folge[i], Folge[i+1]);
          nichtvertauscht:=false;
          FolgeAnzeigen; // Procedure zum Anzeigen der bisherigen Sortierung 
          Delay(SEDelay.Value); <-- Aufruf der Delay-Prozedur
        end;
  until nichtvertauscht;

_________________
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!