![]() |
TimerEvent zur Laufzeit festlegen
Ich möchte zur Laufzeit eine Timerkomponente erzeugen. Das ist über
Delphi-Quellcode:
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...?
Timer:=TTImer.Create;
Timer.Interval:=1000; Timer.Enabled:=true; |
Re: TimerEvent zur Laufzeit festlegen
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. |
AW: TimerEvent zur Laufzeit festlegen
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; |
AW: TimerEvent zur Laufzeit festlegen
Delphi-Quellcode:
Du willst ja eine Methode zuweisen und keinen Aufruf derselben.
myTimer.OnTimer := ShowNowTime;
|
AW: TimerEvent zur Laufzeit festlegen
Ist das Delphi oder Lazarus?
|
AW: TimerEvent zur Laufzeit festlegen
Zitat:
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; |
AW: TimerEvent zur Laufzeit festlegen
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:
Delphi-Quellcode:
myTimer.OnTimer := @ShowNowTime;
|
AW: TimerEvent zur Laufzeit festlegen
Zitat:
|
AW: TimerEvent zur Laufzeit festlegen
Vielleicht solltest du langsam dein Profil ändern? (Lazarus steht auch zur Auswahl) :stupid: (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? |
AW: TimerEvent zur Laufzeit festlegen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz