AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

problem mit Timer

Ein Thema von Arrayuser · begonnen am 8. Jan 2009 · letzter Beitrag vom 8. Jan 2009
Antwort Antwort
Arrayuser

Registriert seit: 17. Mär 2008
35 Beiträge
 
#1

problem mit Timer

  Alt 8. Jan 2009, 18:52
Hallo, ich experementiere etwa mit med Timer, hab aber kleine probleme:

Ich möchte das eine kugel(ellipse) auf einer image mit hilfe des timers bewegt, ich habs mir überlegt das diese kugel jede sekunde um 50 pixel weiter bewegt, dazu hab ich einen code:

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Edit1.Text:=Timetostr(time);
form1.Timer1.Enabled:=true;
form1.Timer1.OnTimer:=button1click;
timer1.Tag:=4;
with image1.Canvas do
begin
pen.Color:=clred;
brush.Color:=clred;
ellipse(5*timer1.Tag,5,45*timer1.Tag,45);

end;
end;

es wird zur zeit ein großer oval gezeichnet.

ich weiß das da etwas mit dem tag gemacht werden muss, diese ist bei mir aber statisch, ich möchte das dieser sich mit jeder sekunde verändert.

Hilfe bitte
Ich bin ein Tier ich werde dich fressen
  Mit Zitat antworten Zitat
BloodySmartie
(Gast)

n/a Beiträge
 
#2

Re: problem mit Timer

  Alt 8. Jan 2009, 18:59
Dein onTimer-Event ruft ja die ButtonClick-Methode auf. Dort sagst Du aber bei jedem Aufruf

timer1.Tag:=4; Dieser Wert bleibt also immer gleich und kann sich damit gar nicht verändern.

Lagere am besten erstmal die Ereignisbehandlung für onTimer woanders hin aus und versuch' es dort mit so etwas wie
timer1.tag:=timer1.tag+1;
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: problem mit Timer

  Alt 8. Jan 2009, 19:03
Du solltest das ganze etwas aufsplitten, etwa so:

Zuerst brauchst du etwas, was deine Ellipse beschreibt. z.B. eine Variable des Typs TRect. Diese definiert das Rechteck in dem die Ellipse drin ist, also Größe und Position.

Dann nimmst du statt dem Image eine Paintbox (das Image ist eigentlich dazu gedacht, ein Bild statisch darzustellen.)

Dann musst du in der Paintbox ein im OnPaint Ereignis die Ellipse zeichnen. (Iirc hat Canvas direkt eine Methode, um eine Ellipse in einem Rechteck zu zeichnen)

In der Timer-Routine kannst du dann einfach die Ellipsen-Variable verändern und Paintbox1.Refresh; aufrufen
  Mit Zitat antworten Zitat
Arrayuser

Registriert seit: 17. Mär 2008
35 Beiträge
 
#4

Re: problem mit Timer

  Alt 8. Jan 2009, 19:28
ich möchte image benutzen da ich es kenne, was anderes möchte erstmal nicht nagfangen, es geht ja alles im image.

und ich möchte das sich der tag jede sekunde ändert,dabei kan ich doch nicht aus der button prozedur raus!?

das sol ja so aussehen das sich der timer so ändert : 1 ->2 ->3 ->4 ->3 ->2 ->1 ->2 usw. in einer unedlichschleife.
Ich bin ein Tier ich werde dich fressen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: problem mit Timer

  Alt 8. Jan 2009, 20:10
Könntest du dem Beitrag bitte einen aussagekräftigeren Titel geben der das Problem annähernd beschreibt?
Zudem möchte ich dich bitten im ersten Beitrag die Delphitags zu setzen. Den Beitrag kannst du ändern in dem du auf
über dem Beitrag klickst
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Arrayuser

Registriert seit: 17. Mär 2008
35 Beiträge
 
#6

Re: problem mit Timer

  Alt 8. Jan 2009, 20:48
OK habs gelöst!
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
form1.Timer1.Enabled:=true;
timer1.Tag:=timer1.Tag+1;
edit2.Text:=inttostr(timer1.Tag);
Edit1.Text:=Timetostr(time);
with image1.Canvas do
begin
pen.Color:=clred;
brush.Color:=clred;
ellipse(timer1.Tag*50-5,5,timer1.Tag*50-45,45);
end;
end;
nun habe ich das problem wie ich das zählmechanismus einbauen kann, das von 1 bis 4 und zurück zählt!
Ich bin ein Tier ich werde dich fressen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz