Passt du denn "niedrigster_wert" nochmal an?
Ansonsten schreibt er dir immer den gleichen Wert für jedes x in meine_panels[x].
Delphi-Quellcode:
for i := 0 to meine_panels_anzahl do
begin
if temp_panels[i].Top = niedrigster_wert then // Wenn das immer gleich bleibt, dann kommt auch immer das gleiche temp_panels[i] bei rum
begin
meine_panels[x] := temp_panels[i];
end;
end;