Autor |
Beitrag |
Makavelithadon
Hält's aus hier
Beiträge: 13
|
Verfasst: 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
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Mi 27.09.06 14:28
guck mal nach TIMER...
_________________ Anonymes Eckenkind
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: 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
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var counter: integer = 10; ...
... 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 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mi 27.09.06 18:52
Ich schigg ma quelltext
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 raziel: Delphi-Tags hinzugefügt
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Do 05.10.06 11:10
Hi!
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 begin 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 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mi 11.10.06 14:13
Jetzt steht im Labelfeld wenn man den klickt nur die anchricht und dann nix mehr
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: 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
      

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)
|
Verfasst: Mi 11.10.06 14:20
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 
Hält's aus hier
Beiträge: 13
|
Verfasst: 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
      

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)
|
Verfasst: Mi 11.10.06 14:27
Makavelithadon 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  )
_________________ 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 
Hält's aus hier
Beiträge: 13
|
Verfasst: 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
      

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)
|
Verfasst: 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 
Hält's aus hier
Beiträge: 13
|
Verfasst: 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
|
Verfasst: 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:
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:
Delphi-Quelltext
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mi 11.10.06 14:32
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
      

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)
|
Verfasst: 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
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: 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 
Hält's aus hier
Beiträge: 13
|
Verfasst: 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
|
Verfasst: 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
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mi 11.10.06 14:39
.caption erwartet nen String
Zahl ist aber vom Typ integer
Also einfach
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.
|
|