AGB  ·  Datenschutz  ·  Impressum  







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

Umgang mit der Timer Komponente

Ein Thema von MarquiseDeSade · begonnen am 30. Aug 2007 · letzter Beitrag vom 30. Aug 2007
Antwort Antwort
Benutzerbild von MarquiseDeSade
MarquiseDeSade

Registriert seit: 18. Apr 2007
Ort: Mainz
55 Beiträge
 
Turbo Delphi für Win32
 
#1

Umgang mit der Timer Komponente

  Alt 30. Aug 2007, 19:19
Hallo Delphi-Freunde

Ich habe ein Problem mit der Komponente "Timer" und deren Benutzung. Ich möchte eine Ampel programmieren und bin mir über die Funktionsweise des Timers nicht ganz klar.

Beispiel:

Kann der Timer so benutzt werden ?

Delphi-Quellcode:
procedure TForm1.GruenGelbRotPhase;
begin
  //Grün-Gelb-Rot-Phase
    Image1.Canvas.Brush.Color := clgreen;
      Image1.Canvas.Ellipse(20, 152, 75, 207);
        Timer1.Interval:=2000;
          Image1.Canvas.Brush.Color := clyellow;
            Image1.Canvas.Ellipse(20, 82, 75, 137);
              Timer1.Interval:=2000;
                Image1.Canvas.Brush.Color := clred;
                  Image1.Canvas.Ellipse(20, 12, 75, 67);
end;
Oder funktioniert der Timer nur, wenn er auch in der Prozedur TForm1.Timer1Timer(Sender: TObject); eingebunden ist ??

Denn ich wollte das so realisieren, aber die Ampel zeigt nur die Rotphase an...

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
begin
i:=1;
    case i of
    1: begin
          AmpelZeichnen;
            RotPhase;
              inc(i);
        end;
    2: begin
          Timer1.Interval:=2500;
            RotGelbPhase;
              inc(i);
        end;
    3: begin
          Timer1.Interval:=4000;
            GruenPhase;
              inc(i);
        end;
    4: begin
          GruenGelbRotPhase;
            i:=1;
        end;
    end;
end;
Funktioniert das überhaupt so ?? Oder mache ich einen Grundlegenden Fehler, denn wie gesagt, es werden die anderen Ampelphasen nicht angezeigt.

Gruß Tobias
  Mit Zitat antworten Zitat
Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#2

Re: Umgang mit der Timer Komponente

  Alt 30. Aug 2007, 19:25
Hi!

Du machst einen grundlegenden Fehler...

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
begin
i:=1; // <-- ...und zwar hier
In jedem Timerintervall wird i auf 1 gesetzt und die späteren incs können daran nichts ändern.

Gruß

Calculon
--
  Mit Zitat antworten Zitat
Benutzerbild von MarquiseDeSade
MarquiseDeSade

Registriert seit: 18. Apr 2007
Ort: Mainz
55 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Umgang mit der Timer Komponente

  Alt 30. Aug 2007, 19:28
Huhu

Stimmt

Nun hab ich es geändert und alles scheint zu funktionieren... muss noch ein bissl testen

Danke schön...
  Mit Zitat antworten Zitat
jmd anders

Registriert seit: 13. Mai 2004
84 Beiträge
 
#4

Re: Umgang mit der Timer Komponente

  Alt 30. Aug 2007, 20:52
und du solltest am besten i als globale oder wenigstens klassenvarible deklarieren, sonst wird i bei jedem timer aufruf undefiniert sein
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Umgang mit der Timer Komponente

  Alt 30. Aug 2007, 21:10
Zitat von jmd anders:
und du solltest am besten i als globale oder wenigstens klassenvarible deklarieren, sonst wird i bei jedem timer aufruf undefiniert sein
du weißt garnicht was er vor hat ^^
i ist eine lokale variable die in der funktion deklariert wird... vllt braucht er sie ja nur da.
ansonsten umbenennen und als feld in der klasse deklarieren.
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  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:44 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