Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Kreisverschiebung verzögern


Safran - Di 25.04.06 16:06
Titel: Kreisverschiebung verzögern
Hallo Community,

ich habe eine kurze Frage, da ich jetzt spontan nicht sehe wo der Fehler liegt. Ist bestimmt nur eine Kleinigkeit.
Ich möchte das eine Ellipse verschoben wird, da der Computer dies aber zu schnell macht würde ich gerne eine Verzögerung von ca einer Sekunde einbauen.
Dazu wollte ich einen Timer benutzen. Intervall ist gesetzt aber es funktioniert nicht :(


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.Timer1Timer(Sender: TObject);
var x,y,durchmesser: Integer;
begin

   // Startpunkt und Durchmesser
   x := 50;
   y := 150;
   durchmesser :=  100;


   canvas.Brush.color := clyellow;

   //Kreis verschieben
   for i := x to 100 do
    begin
      canvas.Ellipse (x, y, x+durchmesser, y+durchmesser);
      x := x+1;
    end;

end;


Danke im Vorraus!


Moderiert von user profile iconraziel: Topic aus Multimedia / Grafik verschoben am Di 25.04.2006 um 18:33


Marco D. - Di 25.04.06 16:13

Warum ist das im C#-Forum? :roll:
@Topic: Lasse die for-Schleife weg

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.Timer1Timer(Sender: TObject);
var x,y,durchmesser: Integer;
begin

   // Startpunkt und Durchmesser
   x := 50;
   y := 150;
   durchmesser :=  100;


   canvas.Brush.color := clyellow;

   //Kreis verschieben
   canvas.Ellipse (x, y, x+durchmesser, y+durchmesser);
    x := x+1;


end;


Safran - Di 25.04.06 16:29

Habe ich echt noch das falsche Forum erwischt *schäm*

Wenn ich die for-Schleife einfach weg lasse wird zwar der Kreis erstellt, aber er wird nicht verschoben. Also folgere ich daraus das der Code genau einmal durchgeführt wird. Oder habe ich noch einen anderen Fehler gemacht?


Marco D. - Di 25.04.06 16:36

Da habe ich was falsch verstanden.

Ich dachte, der Kreis wird verschoben, indem die OnTimer-Prozedur ständig aufgerufen wird. :gruebel:
Wie hoch ist denn der Interval des Timers?


Safran - Di 25.04.06 16:44

Das Intervall beträgt im Moment eine Sekunde. Du hast praktich mein komplettes Programm vor dir liegen, es besteht nur aus der einen Prozedur...