AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Automatisches hin und her hüpfen mit hilfe eines timers
Thema durchsuchen
Ansicht
Themen-Optionen

Automatisches hin und her hüpfen mit hilfe eines timers

Ein Thema von malo · begonnen am 17. Okt 2004 · letzter Beitrag vom 17. Okt 2004
Antwort Antwort
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#1

Automatisches hin und her hüpfen mit hilfe eines timers

  Alt 17. Okt 2004, 15:30
Und zwar hab ich mal zu Versuchszwecken versucht ein Programm zu schreiben, dass ein Label automatisch nach links und rechts hüpfen lässt(bin immer noch Anfänger in Delphi ).

jetzt sieht mein Quelltext im OnTimer-Event folgendermaßen aus:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
    Bewegung := Bewegung + 1; // Wert von Bewegung erhöht sich sekündlich um 1
  if Bewegung = 5 then
    begin
      if Label1.Left = Entfernung then
        Label1.Left := Entfernung + 100; // Soll nur einmal vorkommen
    end;
  if Bewegung = 5 then
    begin
      if Label1.Left = Entfernung + 100 then
        Label1.left := Entfernung - 100 // nach der ersten Bewegung soll Label1 in die andere Richtung
    end;
  if Bewegung = 5 then
    begin
      if Label1.Left = Entfernung - 100 then
        Label1.Left := Entfernung + 100; // nach der zweiten Bewegung wieder in die andere Richtung. Dann tritt das zweite wieder ein.
    end;
  if Bewegung = 5 then
    Bewegung := 1; // Bewegung wird auf 1 zurückgesetzt, eine Endlos schleife soll entstehen


end;
Bewegung und Entfernung sind Variabeln vom Typ integer. Entfernung hat im OnCreat des Forms den gleichen Wert bekommen, wie Label1.Left ist. Bewegung startet mit 1.

Wenn ich das Programm jetzt laufen lasse, hüpft das Label einmal nach rechts und bleibt dort. Was hab ich falsch gemacht?
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Automatisches hin und her hüpfen mit hilfe eines timers

  Alt 17. Okt 2004, 15:39
Hallo malo,

alle Programmteile werden bei dir bei Bewegung=5 ausgeführt, deshalb können sie allen in einen Block:

Delphi-Quellcode:
if Bewegung = 5 then
begin
   ...
end;
Also bei Bewegung = 5 wird ja Label.Left auf Entfernung +100 gesetzt, aber in der nächsten if-Abfrage wieder zurück! Du siehst also gar nichts.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#3

Re: Automatisches hin und her hüpfen mit hilfe eines timers

  Alt 17. Okt 2004, 15:41
Mh... das heißt also im Grunde, dass Label1.Left gleichzeitig +100 und -100 wird? So ungefähr? ^^

Nun gut, dürfte ja nicht sooo schwer sein, dass zu ändern... danke
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Automatisches hin und her hüpfen mit hilfe eines timers

  Alt 17. Okt 2004, 15:44
Hallo Malo,

ja, so ist es. Soll das Label nach 5 Sekunden nach rechts hüpfen, nach 10 Sekunden zurück, nach 15 wieder nach rechts usw.?
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Automatisches hin und her hüpfen mit hilfe eines timers

  Alt 17. Okt 2004, 15:45
Hai malo,

wenn ich es richtig verstehe möchtest Du das Label abwechselnd rechts und links anzeigen lassen oder?
Dann könntest Du es doch so machen:
Delphi-Quellcode:
var
 leftpos, rightpos : Integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
  leftpos := 100; // Linkepostion des Labels
  rightpos := 400; // Rechteposition des Labels
  Timer1.Interval := 1000; // einmal pro Sekunden hüpfen
  Timer1.Enabled := True; // Timer starten
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if Label1.Left = leftpos then // Wenn es links ist
  begin
    Label1.Left := rightpos; // dann nach rechts setzen
  end
  else
  begin
    Label1.Left := leftpos // sonst wieder nach links
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#6

Re: Automatisches hin und her hüpfen mit hilfe eines timers

  Alt 17. Okt 2004, 15:55
Hm... das ist sogar eine noch einfachere Variante ^^

Aber egal, ich hab das jetzt schon mit meinem Quelltext gemacht, nur etwas verändert... aber merken werd ich's mir auf jeden fall
  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 10:26 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