Zitat:
Dein Programm macht random(10) * 10 + 20)= 20..120 ms gar nichts!
Hä?
Was macht es nicht..
Wie du sehen kannst wird hier Sleep in einem bereich von 20-120 Millisekunden aufgerufen
und hält für die jeweilige zeit die bewegung der aktiven Form an.
Somit erhalte ich den Effekt eines Federbandes wobei noch jede Form geprüft wird ob sie
rechts links oder unten gegen den Desktop prallt.
Zitat:
Der Fehler tritt normalerweise dann auf, wenn ein Objekt (oder Formular, ...)
Freigegeben wird, obwohl es nicht mehr existiert (schon freigegeben ist).
Nö der tritt auf weil ich bei Until bClose auf False geprüft habe.
Daher hat die schleife nicht korrekt beendet.
EDIT:
Zitat:
Deswegen ruckelt das Programm ziemlich.
Nein
Weil bei der Berechnung der Federkraft mein ergebnis von Feder.x und Feder.y immer 0 war.
Alt!
Delphi-Quellcode:
If Leni > iSegLen Then
begin
FederF := iFederK * Leni - iSegLen;
Feder.x := Feder.x + (Dx div Leni) * FederF;
Feder.y := Feder.y + (Dy div Leni) * FederF;
end;
Neu!
Delphi-Quellcode:
If Leni > iSegLen Then
begin
FederF := iFederK * round(Leni - iSegLen);
Feder.x := Feder.x + round(Dx / Leni) * FederF;
Feder.y := Feder.y + round(Dy / Leni) * FederF;
end;
gruss