Autor Beitrag
Makavelithadon
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 27.09.06 14:22 
Ne Frage ma wieder:
Ich will folgendes haben:
Einen Countdown, der per buttonklick aktiviert wird und den mann in einem labelfeld runterzählen sieht und eine message, die erscheint wenn der zähler auf null ist!
Irgendwelche vorschläge? :)
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Mi 27.09.06 14:28 
guck mal nach Suche in der Entwickler-Ecke TIMER...

_________________
Anonymes Eckenkind
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mi 27.09.06 14:39 
Hallo!

Globale Variable deklarieren, der nen Startwert zuweisen und in der OnTimer-Procedure diese Variable dekrementieren und prüfen ob sie 0 ist

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
//Globale Variable
var counter: integer = 10//Startwert 10 (Sekunden)
...

//Im OnTimer-Ereignis
...
 dec(counter);
 if counter <= 0 then
 begin
  Timer deaktivieren;
  Meldung ausgeben
 end;


Noch zu beachten: Zur Designzeit den Timer auf Enabled = false setzen, und das Intervall auf 1000 (Damit immer nach ca. 1 Sekunde das OnTimer-Ereignis ausgelöst wird).

LG
Stefan

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Makavelithadon Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 27.09.06 18:52 
Ich schigg ma quelltext

ausblenden 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:
var
  Form1: TForm1;


implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
If Zeit =0 then
Label1.caption  := 'Boom'
else
Label1.Caption :='noch' +IntToStr(Zeit)+ 'Sekunden';
Timer1.Enabled := (zeit >=0);
Dec(Zeit);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin  
  Timer1.Enabled := False;  
  Button1.Caption := 'Start';
  Zeit:= 10;
end;  
end.


Folgendes Prob: Wenn ich jez den button klick kommt da die message sofort im labelfeld und dann steht da 1-sekunde und das wars schon!!

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Do 05.10.06 11:10 
Hi!

ausblenden 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:
 procedure TForm1.Button1Click(Sender: TObject);
 begin
  Timer1.Enabled:=true;
 end;

 procedure TForm1.Timer1Timer(Sender: TObject);
 begin
  If Zeit =0 then
   Label1.caption  := 'Boom'
  else //Sollen mehr als ein Befehl nach einem 'else' ausgeführt werden, musst du diese
  begin //mit 'begin' und 'end' zu einem Block zusammenfassen
   Label1.Caption :='noch' +IntToStr(Zeit)+ 'Sekunden';
   Timer1.Enabled := (zeit >=0);
   Dec(Zeit);
  end;
 end;

 procedure TForm1.FormCreate(Sender: TObject);
 begin  
  Timer1.Enabled := False;  
  Button1.Caption := 'Start';
  Zeit:= 10;
 end;  
end.


LG
Stefan

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Makavelithadon Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 11.10.06 14:13 
Jetzt steht im Labelfeld wenn man den klickt nur die anchricht und dann nix mehr
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mi 11.10.06 14:18 
welchen intervall hat dein timer?
was für ne nachricht?

wir der button auch erst bei onbuttonclick oder so aktiviert oder läuft der schon bei on formcreate munter drauf los?

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 11.10.06 14:20 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Timer1Timer(Sender: TObject);
 begin
  If Zeit =0 then
    Label1.caption  := 'Boom'
  else
    Label1.Caption :='noch' +IntToStr(Zeit)+ 'Sekunden';

  Timer1.Enabled := (zeit >0);
  Dec(Zeit);
end;


so vielleicht?

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Makavelithadon Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 11.10.06 14:24 
Intervall is 1000 und es eght auch so net bei buttonklick kommt immer nur die nachricht
Nachricht= die die er zeigen soll wenn timer auf 0 is die is bei mir 'boom'
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 11.10.06 14:27 
user profile iconMakavelithadon hat folgendes geschrieben:
bei buttonklick kommt immer nur die nachricht


was verstehst du unter Nachricht? noch x Sekunden? Boom? oder ne Fehlermeldung? (oder die Tagesschau :mrgreen: )

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Makavelithadon Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 11.10.06 14:29 
Also bei buttonklick soll ersma im label kommen noch 10 sekunden dann soll der sekündlich runterlaufgen und wenn der halt auf null is soll im label stehen booom
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 11.10.06 14:30 
setzt du Zeit auch auf irgendwas beim Programmstart?

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Makavelithadon Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 11.10.06 14:31 
So hier nommal quelltext

implementation
var counter :integer=10 ;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=true;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
If Zeit =0 then
Label1.caption := 'Boom'
else
Label1.Caption :='noch' +IntToStr(Zeit)+ 'Sekunden';
Timer1.Enabled := (zeit >0);
Dec(Zeit);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Enabled := False;
Button1.Caption := 'Start';
Zeit:= 10;
end;
end.
Barzi
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 11.10.06 14:32 
Villeicht gehts mit zwei Timern:
Timer1.enabeld:=false;
OnClick des Buttons: Timer1.enabled:=true
Variablen:= Zahl:Integer;

OnTimer1-Ereigniss:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
If Zahl:=0 then 
begin
Label1.caption:='Zeit abgelaufen';
Timer2.enabled:=false;
end
else Zahl:=Zahl-1


OnTimer2-Ereignis:
ausblenden Delphi-Quelltext
1:
Label1.caption:=Zahl;					
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mi 11.10.06 14:32 
:lol:

nenn mal oben deinen counter zeit =)

LG
Stefan

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 11.10.06 14:32 
ich seh in deinem Code oben gar keine Deklaration von Zeit. Hast du irgendwo Zeit: integer? UND: nicht lokal, sondern global muss Zeit sein.

//EDIT: lol haben da viele zwischendrin geantwortet *g* da kriegt man ja nur die hälfte mit ;)

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mi 11.10.06 14:37 
siehe anhang..hat 3 minuten gedauert!
Einloggen, um Attachments anzusehen!
_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Makavelithadon Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 11.10.06 14:37 
procedure TForm1.Timer2Timer(Sender: TObject);
begin
Label1.caption :=Zahl

[Fehler] Countdown.pas(63): Inkompatible Typen: 'String' und 'Integer'
Barzi
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 11.10.06 14:39 
Zahl ist doch die Zahl wovon runtergezählt werden soll, also z.B 10.
Das Intervall vom ersten Timer müsste eine Sekunde betragen. Und das Intervall vom zweiten müsste möglichst kurz sein.
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mi 11.10.06 14:39 
.caption erwartet nen String
Zahl ist aber vom Typ integer

Also einfach
ausblenden Delphi-Quelltext
1:
label1.caption:= inttostr(zahl);					


LG
Stefan

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.