Flackern
-
Hallo,
in habe folgende Funktion:void Move(){ Canvas->Brush->Color=clGreen; for(int u=0;u<100;u++){ Refresh(); Canvas->Ellipse(x,y,x+15,y+15); x+=15; y+=15; } }
Nun entsteht zwar eine bewegung, doch der Kreis flackert dabei sehr stark. Ist es möglich ihn ohne das flackern zu bewegen?
Danke
-
Setze in deiner Form "DoubleBuffered = true".
Und den "Refresh" solltest du nach dem Canvas-Zeichnen aufrufen -)Benutze allerdings besser einen Timer für die Bewegung (auch wenn ca. 15ms die Grenze sind, d.h. du evtl. größere x bzw. y Schritte machen mußt), damit deine Form nicht blockiert.
-
aber wenn ich die refresh funktion am ende aufrufe ist doch zum schluss alles weg..
was ist der vorteil von einem timer gegenüber sleep?
grüße
-
Der Vorteil waere, dass bei Verwendung von sleep() das ganze Programm schlaeft, wohingegen du bei einem Timer ganz normal weiter arbeiten kannst. Natuerlich besteht auch die Moeglichkeit mit Threads zu arbeiten, aber das wird dann wieder etwas komplizierter. Habe ich persoenlich noch nicht angeruehrt, das Thema.