AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TimerEvent zur Laufzeit festlegen

Ein Thema von dr. love · begonnen am 11. Apr 2007 · letzter Beitrag vom 17. Nov 2014
Antwort Antwort
Seite 1 von 2  1 2   
dr. love

Registriert seit: 10. Jan 2007
92 Beiträge
 
#1

TimerEvent zur Laufzeit festlegen

  Alt 11. Apr 2007, 12:00
Ich möchte zur Laufzeit eine Timerkomponente erzeugen. Das ist über

Delphi-Quellcode:
Timer:=TTImer.Create;
Timer.Interval:=1000;
Timer.Enabled:=true;
usw. kein Problem. Nun möchte ich dem Timer Event "OnTimer" aber etwas zuweisen. D.h. der Timer soll immer nach Ablauf des Intervals einen bestimmten Algorithmus ausführen. Wie mache ich das, der Timer wird ja erst zur Laufzeit erzeugt...?
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TimerEvent zur Laufzeit festlegen

  Alt 11. Apr 2007, 12:03
du musst irgendwo schon den event haben. das sollte eine TNotify-Prozedur sein, also "procedure bla(Sender: TObject);".

Die kannst du dann per "Timer.OnTimer := bla;" zuweisen.
Lukas Erlacher
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#3

AW: TimerEvent zur Laufzeit festlegen

  Alt 17. Nov 2014, 16:02
Sag ma wieso klappt das bei mir nicht?

Delphi-Quellcode:
  private
    { private declarations }
    procedure ShowNowTime(Sender: TObject);
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  myTimer: TTimer;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.ShowNowTime(Sender: TObject);
begin
  Label1.Caption := DatetimeToStr(Now);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  myTimer := TTimer.Create(Self);
  myTimer.Enabled := False;
  myTimer.Interval := 1000;
  myTimer.OnTimer := ShowNowTime; // <- Error: Wrong number of parameters specified for call to "ShowNowTime"


  myTimer.Enabled := True;
end;
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!

Geändert von AlexII (17. Nov 2014 um 16:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TimerEvent zur Laufzeit festlegen

  Alt 17. Nov 2014, 16:03
myTimer.OnTimer := ShowNowTime; Du willst ja eine Methode zuweisen und keinen Aufruf derselben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TimerEvent zur Laufzeit festlegen

  Alt 17. Nov 2014, 16:09
Ist das Delphi oder Lazarus?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#6

AW: TimerEvent zur Laufzeit festlegen

  Alt 17. Nov 2014, 16:10
myTimer.OnTimer := ShowNowTime; Du willst ja eine Methode zuweisen und keinen Aufruf derselben.
Hm.... aber die Zuweisung produziert ja gerade den Fehler.
Und wie rufe ich eine Methode ab?

Ist für Delphi und Lazarus, jetzt konkret aber erstmal für Lazarus.

Also ich möchte diese Procudure laufen lassen:
Delphi-Quellcode:
procedure TForm1.ShowNowTime(Sender: TObject);
begin
  Label1.Caption := DatetimeToStr(Now);
end;
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: TimerEvent zur Laufzeit festlegen

  Alt 17. Nov 2014, 16:12
Unter Delphi sollte es aber so funktionieren, unter Lazarus musst Du entweder den Modus von FPC auf Delphi ändern oder es AFAIK etwas anders formulieren:
myTimer.OnTimer := @ShowNowTime;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#8

AW: TimerEvent zur Laufzeit festlegen

  Alt 17. Nov 2014, 16:14
Unter Delphi sollte es aber so funktionieren, unter Lazarus musst Du entweder den Modus von FPC auf Delphi ändern oder es AFAIK etwas anders formulieren:
myTimer.OnTimer := @ShowNowTime;
Ja das klappt.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#9

AW: TimerEvent zur Laufzeit festlegen

  Alt 17. Nov 2014, 16:19
Vielleicht solltest du langsam dein Profil ändern? (Lazarus steht auch zur Auswahl) (leider kann man nicht Mehreres angeben)

Delphi referenziert/dereferenziert halt eine Typen automatisch, wenn es erkennt daß würde passen.
Lazarus FreePascal ist da "standardmäßig" halt etwas strikter.
Aber auch Delphi sollte es mit @ versehen.

Und warum ist myTimer global?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Nov 2014 um 16:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: TimerEvent zur Laufzeit festlegen

  Alt 17. Nov 2014, 16:28
Und warum ist myTimer global?
Schlimmer noch, bei jedem ButtonClick wird eine neue Instanz angelegt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:14 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