Hallo!
Folgendes Phänomen, das zu anderen Ergebnissen führt, als ich erreichen möchte, kann ich mir nicht erklären:
nachdem ich Daten in einen Datensatz eingegeben habe, soll dieser neu sortiert werden. Anschließend sollen die sortierten Daten z.B. auf dem Bildschirm neu ausgegeben werden. Ein angedeutetes Beispiel:
Delphi-Quellcode:
var
Text : Array[0..10] of String;
// Schleife 1
for ui:=1 to 10 do begin
for uj:=ui+1 to 10 do begin
if Text[uj]<Text[ui] then begin
Text[0]:=Text[ui];
Text[ui]:=Text[uj];
Text[uj]:=Text[0];
end;
end;
end;
// Schleife 2
for ui:=1 to 10 do begin
Label[ui].Caption:=InttoStr(ui)+'.';
Label[10+ui]:=Text[ui];
end;
Das Programm ist etwas komplizierter, so wird dort in Schleife 1 dafür gesorgt, dass leere Strings nach hinten sortiert werden, in Schleife 2 werden die entsprechenden Felder mit einem leeren String gefüllt.
Beim Debuggen stellte ich fest, dass in Schleife 2 die Zählreihenfolge umgekehrt ist, so dass ui im ersten Durchlauf nicht - wie vorgegeben - den Wert 1 enthält, sondern 10 und dann heruntergezählt wird. Auch wenn ich in Schleife 2 ui durch eine andere Variable, z.B. Loop1, ersetze, tritt dieses Phänomen auf. Ich komme nicht weiter und finde keine Erklärung.
Hat jemand einen Tipp, wie das passieren kann? Ich möchte noch darauf hinweisen, dass beide Schleifen nicht innerhalb einer weiteren Schleife stehen, sondern in einer eigenen
Unit ausgeführt werden.
Vielen Dank für eure Unterstützung.
MfG Gelmo
[edit=Sharky]Delphi-Tags eingefügt. Mfg, Sharky[/edit]