Funcționarea nevalidă a punctului în flotă

Funcționarea nevalidă a punctului în flotă

Imitație obiectului (raza punctului 3 pixeli) este după cum urmează: a reiterat poziția sa de pe site-ul de poziția sa actuală este de fundal redesenat, a salvat în bmp proprietatea sa, obiectul este tras la punctul cu noile coordonate.






Cu toate acestea, uneori apare o eroare: funcționarea nevalidă în virgulă mobilă aici în acest moment al programului:

Form1.PaintBox1.Canvas.Draw (X-3, Y-3, Bmp); // restaura fundalul, extragându-l din proprietatea Bmp și plasându-l în locația curentă a obiectului

Cu ce ​​poate fi conectată această eroare (repet, că nu apare întotdeauna)?







Trebuie notat că numărul de obiecte care sunt desenate este mărit prin crearea tuturor obiectelor noi în ciclu. Și, în plus față de eroarea de mai sus, de asemenea, are loc și celălalt (și anume proiectul a ridicat EOutOfResources clasa excepție cu mesajul „Din resurse de sistem“) la momentul de redare a obiectului:

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

Sunt confuză de asta

Ca și cum nu există o rundă. Deci, trebuie să puneți un Full Stack Call și câteva linii înainte și după Form1.PaintBox1.Canvas.Draw. În caz contrar, această ghicire pe baza de cafea (Eroare în linia 17).


Și ce sa întâmplat în cel de-al doilea caz? Poți împărtăși?

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

Ca și cum nu există o rundă.

Destul de bine, runda a fost la pasul anterior, și din moment ce acest pas a fost o procedură, mai mult, folosind o mulțime de condiții diferite, acest loc a scăpat de atenție. Acolo, uneori, a existat o diviziune de 0 cu o coincidență aleatorie a coordonatelor a două obiecte.







Trimiteți-le prietenilor: