Autor Beitrag
Zappt
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Sa 27.06.09 19:51 
Hallo

ich suche etwas, dass in einer variable "zeit " gespeichert wird (also 60 sekunden z.B und dass diese dann nach anklicken eines buttons auf 0 Zählt und dann eine Aktion ausgeführt wird?

Geht das?
Kann man sowas parallel laufen lassen?


Ps: Sleep Befehl ist nicht was ich suche, dass ist zu ungenau

Thx
Zappt
Waldkauz
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 102



BeitragVerfasst: Sa 27.06.09 19:57 
Du meinst eine Art Countdown?
Natürlich geht das.
Du legst dir eine globale Variable an, z.B.

t:integer=60;

dann legst du dir einen TTimer an und schreibst in die prozedur die Bedingungen was in der Zeit geschehen soll.

z.B.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var t:integer=60;

procedure TForm1.Button1Click;
Timer1.Enabled:=True; //Hiermit aktivierst du den Timer durch den KLick auf den Button

procedure TForm1.Timer1Timer;
begin
t:=t-1{das zieht von t pro Sekunde (bei einem TimerInterval von 1000, da dieser in Millisekunden angegeben ist) 1 ab}

if t=0 then //Abbruch deines spiels
end;
Zappt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Sa 27.06.09 20:15 
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Label1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  timer:integer=60;

implementation

{$R *.dfm}

procedure TForm1.Label1Click(Sender: TObject);
begin

end;

procedure TForm1.Button1Click(Sender: TObject);
begin

{Okay so weit so gut :D Wie schaffe ich es hetzt,
dass die variable time jede sekunde um 1 weniger wird???}


end;

end.


Was soll ich jetzt also un die Button Klick Procedur reinschreiben?
MagicRain
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Sa 27.06.09 20:39 
Das siehst du doch oben wurde doch schon alles an code gepostet was du brauchst. Lese dir am besten mal ein Delphi-Anfänger Tutorial oder Buch durch und dann kannst du weiter sehen :)

MfG
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 27.06.09 20:39 
user profile iconZappt hat folgendes geschrieben Zum zitierten Posting springen:
Was soll ich jetzt also un die Button Klick Procedur reinschreiben?
Steht doch in der Antwort? :?

Wenn es um Genauigkeit geht, würde ich das allerdings nicht so machen. Dann würde ich mir die Startzeit merken und auf deren Basis die vergangenen Sekunden im Timerereignis jeweils ausrechnen.
Zappt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: So 28.06.09 18:54 
Ah ich wusste nett das es diese lustige Uhr gibt :D

Jetzt hun ichs

Thx