Fehler im Code???
-
if ((Shape1->Left <=400) && (Shape1->Top <=400))
{
Shape1->Left=Shape1->Left+5;
Shape1->Top=Shape1->Top+2;
}else if((Shape1->Left >=400)&&(Shape1->Top <=400))
Shape1->Left=Shape1->Left-5;else if((Shape1->Left <=400)&&(Shape1->Top >=400))
Shape1->Top=Shape1->Top-2;};
}Shape bewegt sich bis zur Bande ganz flüssig aber nach der Bande soll es sich nach unten bewegen aber dann wird es nicht mehr flüssig es bewegt sich hinundher.
Und meine Zweite Frage ist es wie kann man einen Timer im Edit Feld anzeigen lassen.
-
Hallo
Du must die Richtung (einmal links/rechts und einmal oben/unten) nicht nur einmalig an der Grenze ändern, sondern auch für nachfolgende Aufrufe noch in jeweils einer Membervariablen speichern.
bis bald
akari
-
können Sie bitte ein Beispiel nennen ich weiß nicht was Sie genau meinen
-
Hallo
Ich skizziere es mal für oben/unten :
class Form ... { bool up; // Membervariable : true nach oben, false nach unten }; // Start der Bewegung, es soll beginnen mit nach unten up = false; // Einzelner Bewegungsschritt int vertical_pos = ...->Top; // VerticalStep ist in deinem Fall = 2 if (up) vertical_pos -= VerticalStep; else vertical_pos += VerticalStep; // VerticalMax ist in deinem Fall = 400 if (vertical_pos > VerticalMax) { // Nach oben abprallen vertical_pos -= VerticalStep*2; up = true; } // VerticalMin ist in deinem Fall = 0 else if (vertical_pos < VerticalMin) { // Nach unten abprallen vertical_pos += VerticalStep*2; up = false; } ...->Top = vertical_pos;
Dazu must du nun analog die Bewegung für links/rechts steuern.
bis bald
akari