Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Per Zufall eine Zahl erzeugen und dann ein Ereignis (https://www.delphipraxis.net/123733-per-zufall-eine-zahl-erzeugen-und-dann-ein-ereignis.html)

lima 7. Nov 2008 10:07


Per Zufall eine Zahl erzeugen und dann ein Ereignis
 
Hallo, is schon lange her als ich in Delphi mal was gemacht habe, aber jetzt hats mich wieder gepackt.

und zwar will ich beim Programmstart eine zufällige Zahl zwischen 1 Minute und einer Stunde generieren lassen, die dann ein Timer übernimmt. Wenn der Timer abgelaufen ist, dann soll ein Ereignis stattfinden.

Das mit dem Ereignis ist jetzt nicht das Problem, nur die generierte Zahl in den Timer bringen, da weiß ich mir nicht zu helfen.

DeddyH 7. Nov 2008 10:15

Re: Per Zufall eine Zahl erzeugen und dann ein Ereignis
 
Delphi-Quellcode:
Timer.Interval := (Random(60) + 1) * 1000;
[edit] Interval im Englischen mit einfachem L *g* [/edit]

divBy0 7. Nov 2008 10:16

Re: Per Zufall eine Zahl erzeugen und dann ein Ereignis
 
Delphi-Quellcode:
randomize;
nicht vergessen.

DeddyH 7. Nov 2008 10:17

Re: Per Zufall eine Zahl erzeugen und dann ein Ereignis
 
Aber Randomize nur einmalig aufrufen (z.B. OnCreate). Nun sollte aber alles gesagt sein :zwinker:

lima 7. Nov 2008 10:22

Re: Per Zufall eine Zahl erzeugen und dann ein Ereignis
 
Muß ich dann das Ereignis in den Timer mit reinsetzen oder mach ich bei Form.Create einfach folgendes:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
Ereignis;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Interval := (random(3600)+60) * 1000; // 1 bis 60 Minuten
end;
P.S. Das Ereignis soll erst nach abgelaufener Zeit eintreten.

ATSV 7. Nov 2008 10:27

Re: Per Zufall eine Zahl erzeugen und dann ein Ereignis
 
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
Timer1.Interval := (random(3600)+60) * 1000; // 1 bis 60 Minuten
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Ereignis;
end;
so müsste es sein

Frankfurtoder 7. Nov 2008 10:29

Re: Per Zufall eine Zahl erzeugen und dann ein Ereignis
 
Du musst die Prozedur um eine Zahl zu generieren erst starten und dann deine Ereignisse in die Prozedur vom Timer legen.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  randomize;
end;

procedure TForm1.Button1click(Sender: TObject);
begin
  Timer1.Interval := (random(3600)+60) * 1000; // 1 bis 60 Minuten
  Timer1.enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  //hier dein Ereignis
end;
Der Timer sollte also im Inspektor deaktiviert sein.

lima 7. Nov 2008 10:30

Re: Per Zufall eine Zahl erzeugen und dann ein Ereignis
 
Oh super, danke an alle Mitwirkenden!

Frankfurtoder 7. Nov 2008 10:35

Re: Per Zufall eine Zahl erzeugen und dann ein Ereignis
 
Nur nicht vergessen den Timer wieder zu stoppen, falls gewünscht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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