Hallo, folgenden Code habe ich
Delphi-Quellcode:
procedure THauptfenster.sg_sortieren(sortierfeld:String);
var array_min,array_hilfe:TAngaben;
i,merken,j:Integer;
begin
if sortierfeld = 'Niederschlag' then
begin
for i:=0 to Length(aDaten)-1 do
begin
array_min := aDaten[i];
merken:=i;
for j:=i+1 to Length(aDaten)-1 do
begin
if aDaten[j].niederschlag < array_min.niederschlag then
begin
array_min := aDaten[j];
merken:=j;
end;
end;
end;
array_hilfe := aDaten[merken];
aDaten[merken] := aDaten[i];
aDaten[i] := array_hilfe;
end;
end;
Ablauf:
Daten sollen aus einem Array of Records in einen StringGrid übertragen werden. Das läuft auch alles, aber jetzt
möchte ich die Daten sortieren.
Wenn der Parameter 'Niederschlag' übergeben wird,an diese Procedure, soll das Array of Record nach .niederschlag sortiert werden.
Das Array hat 3 Elemente. Wenn j = 3, wird ein seltsamer Wert, lange Fließkommazahl, an aDaten[j].niederschlag übergeben.
Dieser Wert wird dann in mein StringGrid, beim letzten Eintrag, übergeben. Ich verstehe nicht wieso noch ein Wert übergeben wird.
Eigentlich sollte doch, wenn j=3, Schluss sein.
Kann mir einer sagen, warum das passiert? Liegt der Fehler nicht in dieser Procedure?