Lebegőpontos művelet érvénytelen

Lebegőpontos művelet érvénytelen

Utánzása a tárgy (3 pont pixel sugár) a következő: újra álláspontját a helyén a jelenlegi helyzetben újrarajzol háttér, korábban mentett BMP ő tulajdonát, az objektum húzott a ponton az új koordinátákat.
Azonban néha egy hiba: lebegőpontos művelet érvénytelen ezen a helyen a programban:

Form1.PaintBox1.Canvas.Draw (X-3, Y-3, BMP); // visszaállítani a háttérben, eltávolítja az ingatlan BMP és helyezzük a jelenlegi helyét az objektum

Az, hogy mi lehet a hiba miatt (ismét, hogy nem mindig)?

Meg kell jegyezni, hogy az objektumok számát dolgozzák, növeli az új tárgyak a ciklusban. És amellett, hogy a fenti hiba is előfordul, és a másik (azaz a projekt emelt kivétel osztály EOutOfResources az "Out of a rendszer erőforrásait) idején a renderelés az objektumot:

Form1.PaintBox1.Canvas.Pen.Color: = clRed;
Form1.PaintBox1.Canvas.Brush.Color: = clRed;
Form1.PaintBox1.Canvas.Ellipse (X-3, Y-3, X + 3, Y + 3);

Zavarban vagyok, hogy

Bármi legyen is a kerek és nem rendelkeznek. Tehát meg kell határozni azokat a teljes hívás verem és egy pár sort előtt és után Form1.PaintBox1.Canvas.Draw. Ellenkező esetben találgatások (hiba a 17. sor).


És mi volt a 2. esetben nem? Lehet osztani?

Form1.PaintBox1.Canvas.Draw (X-3, Y-3, BMP);

Bármi legyen is a kerek és nem rendelkeznek.

Ez igaz volt, kerek az előző lépésben, valamint a lépés volt az eljárás, de még mindig, ezúttal egy csomó különböző körülmények között, ez az a hely megszökött a figyelmet. Itt néha találkozott 0-val osztás véletlen egybeesése a koordinátákat a két tárgy.