AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Probleme beim Stoppuhr minispiel
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme beim Stoppuhr minispiel

Ein Thema von Christof_S · begonnen am 14. Apr 2009 · letzter Beitrag vom 14. Apr 2009
Antwort Antwort
Seite 1 von 2  1 2      
Christof_S

Registriert seit: 23. Mär 2009
5 Beiträge
 
#1

Probleme beim Stoppuhr minispiel

  Alt 14. Apr 2009, 13:38
hallo,
ich wollte ein kleines minispiel mit einer stoppuhr programmieren. dabei soll man die zeit schätzen. mittels button startet man einem time und wenn man glaubt das 10 sekunden vergangen sind drückt man stopp. dann wird der vorher verdeckte timer sichtbar und man sieht wie nah man dran war. hier unten seht ihr meinem quelltext.


Meine konkreten fragen: Wie mache ich das das das label welches die zeit anzeigt wieder angezeigt wird wenn ich auf stop drücke

wie mache ich es wenn man die zeit genau auf 10 sek. geschätzt hat das ein label mit zb "gewonnen erscheint".

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Timer: TTimer;
    Button2: TButton;
    Label3: TLabel;
    Label1: TLabel;
    procedure TimerTimer(Sender: TObject);
  
    procedure Button2Click(Sender: TObject);


      private

    StartZeit: TDateTime;
    StopZeit: TDateTime;

    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}





  
procedure TForm1.Button2Click(Sender: TObject);
begin
  case Button2.Tag of
    0: begin { wenn die Uhr gestartet wird }
      StartZeit := now;
      Timer.Enabled := true;
      Button2.Caption := '&Stop';
    end; { Ende des Zweigs beim Start der Uhr }
    1: begin { wenn die Uhr angehalten wird }
      StopZeit := now;
      Timer.Enabled := false;
      Button2.Caption := '&Start';
      Label3.Caption := TimeToStr( StopZeit - StartZeit);
    end; { Ende des Zweiges bei anhalten der Uhr }
  end; { Ende der CASE-Anweisung }
  { nun den tag umstellen }
  Button2.Tag := Button2.Tag + 1;
  if Button2.Tag > 1 then Button2.Tag := 0;
end;

procedure TForm1.TimerTimer(Sender: TObject);
begin
Label3.Caption := TimeToStr(now - StartZeit);

end;

end.

vll könnt ihr mir ein wenig helfen danke im vorraus.

hier nochmal falsl ihr das ganze prog sehen wollt : http://rapidshare.de/files/46719784/...r__3_.rar.html
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Probleme beim Stoppuhr minispiel

  Alt 14. Apr 2009, 13:56
Hallo,

geht das nicht mit Label3.visible:=true ?
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#3

Re: Probleme beim Stoppuhr minispiel

  Alt 14. Apr 2009, 14:03
Delphi-Quellcode:

Label1.Hide; // Ausblenden
Label1.Show; // Anzeigen

Label1.Visible := false; // Ausblenden
Label1.Visible := true; // Anzeigen
  Mit Zitat antworten Zitat
Christof_S

Registriert seit: 23. Mär 2009
5 Beiträge
 
#4

Re: Probleme beim Stoppuhr minispiel

  Alt 14. Apr 2009, 14:08
Cool danke das habe ich hinbekommen

Fehlt nur noch das wenn die zeit bei 10 Sekunden ist und man stopp drückt ein label kommt mit gewoonen bzw wenn es unter 10 oder über zehn ist 2 versuchs nochmal"

vll. irgendwie so mit if Stopzeit = 10 oder iwie so...hmmm
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#5

Re: Probleme beim Stoppuhr minispiel

  Alt 14. Apr 2009, 14:27
Zitat von Christof_S:
Cool danke das habe ich hinbekommen

Fehlt nur noch das wenn die zeit bei 10 Sekunden ist und man stopp drückt ein label kommt mit gewoonen bzw wenn es unter 10 oder über zehn ist 2 versuchs nochmal"

vll. irgendwie so mit if Stopzeit = 10 oder iwie so...hmmm
Delphi-Quellcode:
IF (Stopzeit = 10) THEN (Label1.Caption := 'Gewonnen');
IF (Stopzeit <> 10) THEN (Label1.Caption := 'Verloren!');
ODER

Delphi-Quellcode:
IF (Stopzeit = 10) THEN (Label1.Caption := 'Gewonnen');
IF (Stopzeit < 10) THEN (Label1.Caption := 'Verloren! - Zu langsam!');
IF (Stopzeit > 10) THEN (Label1.Caption := 'Verloren! - Zu schnell!');
  Mit Zitat antworten Zitat
Christof_S

Registriert seit: 23. Mär 2009
5 Beiträge
 
#6

Re: Probleme beim Stoppuhr minispiel

  Alt 14. Apr 2009, 14:33
Klappt noch nicht ganz ^^ er zeigt immer "zu schnell" an vll kann man den wert 10 nicht mit 10 sekunden bei tdatetime gleichsetzten
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Probleme beim Stoppuhr minispiel

  Alt 14. Apr 2009, 14:55
.. wo wird denn Stopzeit mit einem Wert belegt?

Du willst doch die Differenz von StartZeit und StopZeit betrachten
und nicht den absoluten Wert von StopZeit.

Und schau Dir mal das Format des Typen TDateTime in der Delphi Hilfe
an.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#8

Re: Probleme beim Stoppuhr minispiel

  Alt 14. Apr 2009, 14:58
Es soll doch nur bis 10 gezählt werden, seh ich doch richtig oder?
Warum nimmste da TDateTime. Nimm doch einfach nen Counter der immer um 1 hochzählt!

Evtl musst du die Stopzeit vorher auf 0 setzten
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Probleme beim Stoppuhr minispiel

  Alt 14. Apr 2009, 15:02
.. oder diese Funktion:

Zitat von DelphiHilfe:
Unit

DateUtils

Category

date/time routines

function SecondsBetween(const ANow, AThen: TDateTime): Int64;

Description

Call SecondsBetween to obtain the difference, in seconds, between two TDateTime values. SecondsBetween counts only entire seconds that have elapsed. Thus, SecondsBetween reports the difference between 9:00:00 AM and 9:00:00:999 AM as 0 because the difference is one millisecond short of an entire second.
Klaus
  Mit Zitat antworten Zitat
Christof_S

Registriert seit: 23. Mär 2009
5 Beiträge
 
#10

Re: Probleme beim Stoppuhr minispiel

  Alt 14. Apr 2009, 15:09
zählen sollen er immer weiter blos der zeit punkt bis zu dem man auf stop drückt soll mit dem zeitwert 10 sekunden verglichen werden...wie meinste mit nem counter der immer um eins hochzählt müsste ich den dann nur mit "TDateTime" ersetzten?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:02 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