Autor Beitrag
agent200
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 15.01.08 00:11 
Ich bin gerade am Delphi Programmieren und will an einen Timer die Parameter sek, min, std übergeben.

Die Timer prozedur will ich mit TimerTimer(sek,min,std) aufrufen, jedoch startet der Timer dann nicht mehr automatisch!!
Was mach ich falsch? Was muss ich bei dem "sender: TObject" beachten?

Ich hoffe ihr könnt mir helfen..

lg.
LorenzS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

MS-DOS, WIN 7, WIN 10
BP7.0, D3, D5
BeitragVerfasst: Di 15.01.08 00:21 
ausblenden Delphi-Quelltext
1:
2:
Timer1.interval:=std*3600000+min*60000+sek*1000;//in millisekunden bis zum Aufruf des timers.
Timer1.enable:=true;//timer einschalten
agent200 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 15.01.08 15:39 
Was soll das bringen?

Also, ich habe schon ein fix eingestelltes intervall von 1000ms, also jede Sekunde wird der Timer neu gestartet.
In der Timer routine hab ich die Variablen sek, min, std eingebaut, die sich darin so verändern, dass eine Uhr programmiert wurde, die läuft ja schon!!

Ich will jetzt aber die Uhr von einer anderen Prozedur einstellen, also von dort aus den Timer starten (enabled) und die eingegebenen Werte sek, min, std übergeben (Parameterübergabe), also so in der Art:

procedure TUhrzeit.TimerTimer(Sender: TObject; sek, min, std: Integer);
begin
....
end;

Wenn ich das Sender: TObject (wozu braucht man das eigentlich) herausgebe, dann werden zwar die Variablen übergeben, aber der Timer läuft nicht!!!
Wenn ich as Sender: TObject drinnen lasse, weiß ich nicht, was ich in der Eingabeprozedur bei TimerTimer(??,sek,min,std); eingeben soll! Ist mein Problem verständlich?
lg.
LorenzS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

MS-DOS, WIN 7, WIN 10
BP7.0, D3, D5
BeitragVerfasst: Di 15.01.08 17:56 
wie hätte man sicht das bitte ohne code vorstellen können?
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1340
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Di 15.01.08 17:56 
Die Werte für Sekunden, Minuten und Stunden hast du doch nicht lokal im Ereignisshandler (OnTimerTimer procedure) deklariert? Dort würden sie ja nix bringen. Da es schon geht denke ich mal das es nicht der Fall ist.
Was du brauchst ist doch eigentlich nichts weiter als eine Procedure die die drei Werte belegt und den Timer "anschaltet".
also:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure StarteTimer;
begin
  TUhrzeit.sekunden := 0;
  TUhrzeit.minuten := 5;
  TUhrzeit.stunden := 11;
  TUhrzeit.timer.Enabled := true;
end;

Den Ereingnisshandler selber kannst du nicht um weitere Parameter erweitern. Der hat einen bestimmten Typ (TNotifyEvent) den du nicht ändern kannst da sonst der Handler nicht mehr von dem Timer selbst aufgerufen werden kann.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?