Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Timer reinsetzen (https://www.delphipraxis.net/48166-timer-reinsetzen.html)

manakinn 21. Jun 2005 16:06


Timer reinsetzen
 
Hi,

ich möchte einen Timer einbauen, nach ca. 1 - 2 mins zurück auf die Hauptseite geht, z.b. zurück auf www.irgendwasblablbla.com. Der Timer soll aber willkürlich sein, also mal 67 sekunden, dann 111 sekunden usw., halt alles zwischen 60 und 120 sekunden, wie mache ich das ?
Einen "normalen" TImer einbauen is ja leicht, aber sowas :|

uschi 21. Jun 2005 16:08

Re: Timer reinsetzen
 
Delphi-Quellcode:
randomize;

timer.enabled:=False;
timer.interval:=Random(1000000);
timer.enabled:=True;

manakinn 21. Jun 2005 16:26

Re: Timer reinsetzen
 
danke, und wie sag ich dem das er auf ne andere Seite gehen soll ?
Muss das im ObjectInspektor gemacht ? Also das der auf nen unsichtbaren Button klickt der
zur Seite fügt oder macht man das so irgendwie ;

timer1.OnTimer:=WebBrowser1.Navigate ('www.google.de')
?

danke

mr47 21. Jun 2005 16:38

Re: Timer reinsetzen
 
Einen Doppelklick auf den Timer machen (auf der Form). Delphi bringt dich direkt an die richtige Stelle im Code. Dann einfach

Delphi-Quellcode:
webBrowser1.Navigate('http://google.de');
mfg

manakinn 21. Jun 2005 16:46

Re: Timer reinsetzen
 
Das is ja einfach, dachte da muss man irgendwas kompliziertes eingeben :D
Naja gut, aber nochmals ne frage zum random Timer:

timer.interval:=Random(1000000); <-- Sucht der da wirklich zwischen 60 und 120 seks ?
Oder sucht der zwischen 1 und 1000000 ms ?

fkerber 21. Jun 2005 16:54

Re: Timer reinsetzen
 
Hi!

Er sucht im Bereich 1000000 ms. Du musst im ja ms übergeben.

Ciao Frederic

manakinn 21. Jun 2005 17:00

Re: Timer reinsetzen
 
Zitat:

Zitat von fkerber
Hi!

Er sucht im Bereich 1000000 ms. Du musst im ja ms übergeben.

Ciao Frederic

Das wären 1000 sekunden oder ?
Das ist aber zuviel, kann man in Delhpi nicht irgendwie nen min. und max. Timer wert setzten ?

Treffnix 21. Jun 2005 17:02

Re: Timer reinsetzen
 
dann machste halt einfach
Delphi-Quellcode:
random( 60000 ) + 60000

manakinn 21. Jun 2005 17:10

Re: Timer reinsetzen
 
Funktioniert wunderbar !
Vielen vielen dank !

Gibt es auch eine möglichkeit, die Zeit in einem Label anzeigenzulassen ?
In ms oder s, das ist egal.
Label4.Catpion:=(Timer.1) geht nicht, muss man da erst irgendwie was bestimmtes einbauen oder so ?

manakinn 21. Jun 2005 17:22

Re: Timer reinsetzen
 
Das würde heissen ich muss den Timer so einbauen wie oben, oder ?
Zur Zeit is der Timer so bei mir drinne:

timer1.interval:=Random( 60000 ) + 60000 ;

gibts da irgendwie ne möglichkeit ?

turboPASCAL 21. Jun 2005 17:38

Re: Timer reinsetzen
 
Zitat:

Zitat von manakinn
Gibt es auch eine möglichkeit, die Zeit in einem Label anzeigenzulassen ?
In ms oder s, das ist egal.
Label4.Catpion:=(Timer.1) geht nicht, muss man da erst irgendwie was bestimmtes einbauen oder so ?

Delphi-Quellcode:
  LabelX.Caption := {'Text'} + IntToStr(TimerX.Interval);
oder:

Delphi-Quellcode:
  LabelX.Caption := Format('Der Timer Interval ist auf %d eingestellt.', [TimerX.Interval]);

manakinn 21. Jun 2005 17:48

Re: Timer reinsetzen
 
Das LabelX.Caption := Format('Der Timer Interval ist auf %d eingestellt.', [TimerX.Interval]); funktioniert, aber der sagt, der Timer wäre auf 1000, obwohl der ja Random is :/ was auch noch cool wäre, die Timer anzeige abläuft ^^

Khabarakh 21. Jun 2005 17:52

Re: Timer reinsetzen
 
Die Codezeile musst du natürlich jedesmal, nachdem Interval geändert wurde, aufrufen.

Ich vermisse etwas Eigeninitiative in diesem Thread

DP-Maintenance 21. Jun 2005 18:07

DP-Maintenance
 
Dieses Thema wurde von "alcaeus" von "Internet / LAN / ASP.NET" nach "VCL / WinForms / Controls" verschoben.
Und ich schiebe das mal zu den VCL-Komponenten. Mit Internet hat das doch herzlich wenig zu tun.

Marphy 21. Jun 2005 18:50

Re: Timer reinsetzen
 
Hallo manakinn,

Zitat:

Zitat von manakinn
Das LabelX.Caption := Format('Der Timer Interval ist auf %d eingestellt.', [TimerX.Interval]); funktioniert, aber der sagt, der Timer wäre auf 1000, obwohl der ja Random is :/ was auch noch cool wäre, die Timer anzeige abläuft ^^

Ich glaube, du solltest dir bei Gelegenheit mal ein gutes Delphi-Buch besorgen. :wink: Gibt's bei Amazon.de ab 20€ Bestellwert sogar versandkostenfrei. :???:

So, nun zu deiner (zweiten) Frage:

Zuerst ziehst du einen zweiten Timer auf dein Formular (sagen wir Timer2) und legst sein Intervall z.B. auf 1000ms fest.
Definiere dann in der TForm-Deklaration unter private folgenden Member:
Delphi-Quellcode:
private
  FTimeRemaining: Integer;
Dort, wo Timer1 aktiviert wird, schreibst du drunter:
Delphi-Quellcode:
FTimeRemaining := Timer1.Interval;
Timer2.Enabled := True;
Im Timer2.OnTimer-Event schreibst du folgendes (Label2 ist das Anzeige-Label):
Delphi-Quellcode:
Dec(FTimeRemaining, Timer2.Interval);
Label2.Caption := Format('Noch %d ms!', [FTimeRemaining]);
Später (im Timer1OnTimer) nicht vergessen, Timer2 wieder zu stoppen (Timer2.Enabled := False).

Das war's! :wink:

Viel Spaß,
Marco


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