Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Quiz mit Stoppuhr (https://www.delphipraxis.net/69824-quiz-mit-stoppuhr.html)

Faceman 20. Mai 2006 16:47


Quiz mit Stoppuhr
 
Hallo
Ich bin neu hier, aber auch schon fleißig am programmieren. Zur Zeit erstelle ich ein Quiz, so eine Art wie "Wer wird Millionär". Bis jetzt habe ich mir alle Anweisung aus der Delphi Hilfe und aus dem Internet geholt.
Bei meinem Quiz habe ich eine Stoppuhr eingebaut. Damit soll signalisiert werden, wenn der Kandidat etwa 2 Minuten für eine Frage braucht dann soll das Programm geschlossen werden.
Ich bin schon am versuchen wie ich das hinkriegen kann, aber ich finde keine Lösung.
Das sieht ungefähr so aus:
if time-starttime=00:02:00 then close;
oder
if label3.caption:=´00:02:00` then close;

aber beide varianten gehen nicht. Ich hab irgendwie daran gedacht, diese '00:02:00' in eine dezimalzahl umzuwandeln.
Ich hofe ihr könnt mir helfen.

Klaus01 20. Mai 2006 16:51

Re: Quiz mit Stoppuhr
 
Du könntest einen TTimer einbauen
und den Interval(ms) auf die gewünschte Zeit stellen.
Wurde die Frage gestellt, den Timer aktivieren.
Wird die Frage beantwortet und der Timer wurde
noch ncht ausgelöst, dann den Timer wieder
deaktivieren.

Grüße
Klaus

HuxXx 20. Mai 2006 16:56

Re: Quiz mit Stoppuhr
 
So sähe es dann möglicherweise aus:

Delphi-Quellcode:
var zeit:integer;=0 // lokal

procedure Timer1......
begin
zeit:=zeit+1;
if zeit >= 120 then Application.Terminate;
end;
Greetz by Hux :dp:

Faceman 20. Mai 2006 16:59

Re: Quiz mit Stoppuhr
 
Ich hab schon ein timer verwendet, der in formcreate schon aktiviert ist. mein problem ist ja nur, dass ich nicht weiß wie man diese 00:02:00 angeben soll damit delphi das erkennt. in irgendein forum hab ich gelesen das die anzeige von 07:30:00 = 0,03125 sein soll. ausserdem finde ich das der timer viel zu ungenau ist. es muss doch eine möglichkeit geben, dass delphi erkennt, wenn 2 minten abgelaufen sind, dass programm zuschließen.

Matze 20. Mai 2006 17:02

Re: Quiz mit Stoppuhr
 
Hi, herzlich Willkommen!

Setzt du beim Timer das Intervall auf 2000 (Millisekunden), dann wird ziemlich genau alle 2 Minuten das OnTimer-Ereignis ausgeführt (ne halbe Sekunde hin oder her). Sehr genau ist der QueryPerformanceCounterQueryPerformanceCounter, doch das ist bei einem Quiz wirklich nicht nötig.

Edit: Hab mich 2 Mal beim Suchbegriff vertippelt.

Faceman 20. Mai 2006 17:09

Re: Quiz mit Stoppuhr
 
erstma danke, dass ihr so schnell antwortet.
aber irgendwie sind die lösungen nicht das was ich will, weil ich das ungern mit dem timer machen will.
im allgemeinen weiss ich nicht, wie diese 00:02:00 anders dargestellt werden. ich möchte die stoppuhr so belassen. man sieht wie die sekunden verstreichen und halt wenn im label diese anzeige 00:02:00 erscheint soll das programm geschlossen werden.
aber mit time-starttime=00:02:00 geht das nicht und ich denke mal mit 120 anstatt 00:02:00 auch nicht.

Klaus01 20. Mai 2006 17:26

Re: Quiz mit Stoppuhr
 
magst Du den relevanten Teil Deiner StopUhr hier einstellen.
Ich komme nicht so ganz klar mit dem was Du so willst.

Grüße
Klaus

HuxXx 20. Mai 2006 18:47

Re: Quiz mit Stoppuhr
 
achso, du meinst, dass "00:02:00" angezeigt werden soll?
dann mach es doch so:

Delphi-Quellcode:
var zeit:integer=0; //lokal

procedure Timer1.......

var std,min,sek:Integer;
begin
zeit:=zeit+1;
std:=Format('%.2d',[zeit div 3600]);
min:=Format('%.2d',[zeit div 60]);
sek:=Format('%.2d',[zeit mod 60]);
Label1.Caption:=IntToStr(std)+':'+IntToStr(min)+':'+IntToStr(sek));
end;
Keine Ahnung ob das tut..., bin grad in so einem komischen Internet Café..., und da gibt es kein Delphi^^

Greetz by Hux :dp:

Faceman 20. Mai 2006 19:17

Re: Quiz mit Stoppuhr
 
ich hab mir schon wieder eine andere lösung einfallen lassen. nun is mein problem dass ich mich mit dem timer nich gut auskenne.
bis jetzt weiss ich dass man das timer.interval einstellen kann.
ich will das timer.interval auf 10 sekunden haben, d.h.

timer.interval:=10000;

das sagt aus, dass der timer von 10sekunden runterzählt.
meine frage ist nun, ob es eine anweisung gibt, wenn der timer bei 5 sekunden liegt.
sprich:

timer.interval:=10000;
if timer.interval=5000 then label.caption:='???';
geht das?
bis jetzt hatte ich nich viel zutun damit und nach meinen erfahrungen, ist für mich dieses timer.INTERVAL nur eine Bezeichnung wie z.B. von label.caption das CAPTION.

Matze 20. Mai 2006 19:21

Re: Quiz mit Stoppuhr
 
ne, aber umkekehrt geht es (Intervall 5000):

Delphi-Quellcode:
var Counter: Integer = 0; // global

// OnTimer:
// ========
begin
  inc(Counter);
  // dieser Block wird alle 5 Sek ausgeführt

  if Counter = 2 then // 2 * 5000 => 10 s
  begin
    Counter := 0;
    // dieser Block wird alle 10 Sek ausgeführt.

  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:25 Uhr.
Seite 1 von 2  1 2      

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