Autor Beitrag
Barracuda
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 25.11.08 23:01 
Hi Delphianer

Es ist schon eine Zeit her, seit ich mich das letzte Mal mit Delphi beschäftigt habe. Nun will ich wieder mal ein Programm machen (Immer ein Countdown von 5 Minuten auf 0, sobald "Enter" gedrückt wird die Zeit wieder auf 5 Minuten zurückgesetzt. Die Zeit soll wenn möglich in einer schönen Digital-Uhr angezeigt werden (also auf dem Schirm), halt so dass es wie eine kleine Bombe oder so aussieht.)

Könnt ihr mir bitte helfen, ich weis zwar so mit Timer und Tastaturabfrage und so, brings aber nicht auf die Reihenfolge...

Liebe Grüsse
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 25.11.08 23:09 
Was hast du denn bisher?
Ich denke das Konzept wäre ein Timer auf 1 sekunde, 2 globale Variablen (Minute, sekunde). Im timer wird Sekunde dekrementiert, falls die sekunde -1 wird, wird sie auf 59 gesetzt und die minute dekrementiert, falls dann die minute -1 ist, ist die Zeit abgelaufen.
Wegen der Entertaste, nutze das onKeyDown wo du auf Key = VK_Return prüfst. Form1.KeyPreview sollte auf True sein.

edit:
delphi-hilfe hat folgendes geschrieben:
Die Eingabetaste wird von KeyPreview nicht berücksichtigt, da diese kein Tastaturereignis auslöst.
Oh. :(

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
oldmax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 380


D3 Prof, D4 Prof
BeitragVerfasst: Mi 26.11.08 14:14 
Hi
Vielleicht überlegst du einmal kurz:
Was brauchst du:
Eine Funktion, die einen String in eine Zeit wandelt
also StrToTime(..)
Eine Funktion, die eine Zeit in einen String ( Zeit) wandelt
FormatDateTime('hh:nn:ss',...)
Nun noch vielleicht 2 globale Variablen vom Typ TTime und einen Timer, der dir die Ausgabe aktualisiert...
z.B.
Var ....
CountDown_Start : TTime;
Start_Time : TTime;

Nun noch die Ausgabe in einem Label sowie das setzen der Startzeit mit einem Button

Startzeit setzen in dem ButtonClick-Ereignis
Label1.Caption:='00:05:00'; // Label mit der Startzeit setzen
CountDown_Start :=StrToTime(Label1.Caption); // String in Zeit wandeln
Start_Time:=Now; // aktuelle Zeit merken

Countdown in der OnTimer:
Label1.Caption:=FormatDateTime('hh:nn:ss',CountDown_Start-(Now-Start_Time));

So, diese Zeile zerlegen wir mal in
Zeit in String
Zeitaktuell
Countdown-Startwert
Startzeit
Zeit in String ist Label1.Caption
Zeit aktuell ist Now
Countdown-Startwert ist CountDown_Start
und die aktuelle Zeit beim Start des countdown war Start_Time
Now - Start_Time ergibt die Zeitdifferenz
Diese ziehen wir vom Countdown Startwert ab und erhalten einen kleiner werdende Zeitwert, den Countdown
Den formatieren wir zu einem Zeitstring.
fertig

Gruß oldmax

_________________
Zier dich nich so, ich krieg dich schon....