Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Probleme beim Stoppuhr minispiel (https://www.delphipraxis.net/132514-probleme-beim-stoppuhr-minispiel.html)

Christof_S 14. Apr 2009 13:38


Probleme beim Stoppuhr minispiel
 
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

Klaus01 14. Apr 2009 13:56

Re: Probleme beim Stoppuhr minispiel
 
Hallo,

geht das nicht mit
Delphi-Quellcode:
Label3.visible:=true
?
Grüße
Klaus

BullsEye 14. Apr 2009 14:03

Re: Probleme beim Stoppuhr minispiel
 
Delphi-Quellcode:

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

Label1.Visible := false; // Ausblenden
Label1.Visible := true; // Anzeigen

Christof_S 14. Apr 2009 14:08

Re: Probleme beim Stoppuhr minispiel
 
Cool danke das habe ich hinbekommen :-D

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

BullsEye 14. Apr 2009 14:27

Re: Probleme beim Stoppuhr minispiel
 
Zitat:

Zitat von Christof_S
Cool danke das habe ich hinbekommen :-D

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!');

Christof_S 14. Apr 2009 14:33

Re: Probleme beim Stoppuhr minispiel
 
Klappt noch nicht ganz ^^ er zeigt immer "zu schnell" an vll kann man den wert 10 nicht mit 10 sekunden bei tdatetime gleichsetzten

Klaus01 14. Apr 2009 14:55

Re: Probleme beim Stoppuhr minispiel
 
.. 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

BullsEye 14. Apr 2009 14:58

Re: Probleme beim Stoppuhr minispiel
 
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

Klaus01 14. Apr 2009 15:02

Re: Probleme beim Stoppuhr minispiel
 
.. oder diese Funktion:

Zitat:

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.


Christof_S 14. Apr 2009 15:09

Re: Probleme beim Stoppuhr minispiel
 
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?


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