![]() |
Schon mal an einen Timer gedacht?
Geht wunderbar:
Delphi-Quellcode:
Bzw. so wie du es willst:
procedure delay(msec:longint);
var start,stop:longint; begin start := gettickcount; repeat stop := gettickcount; application.processmessages; until (stop - start ) >= msec; end; procedure TForm1.Button1Click(Sender: TObject); var i : Integer; begin for i := 0 to 60 do begin Application.ProcessMessages; Label1.Caption := IntToStr(i); Delay(1000); end; end;
Delphi-Quellcode:
Oder so:
procedure delay(msec:longint);
var start,stop:longint; begin start := gettickcount; repeat stop := gettickcount; application.processmessages; until (stop - start ) >= msec; end; procedure TForm1.Button1Click(Sender: TObject); var i, calc : Integer; begin calc := 61; for i := 0 to 60 do begin Application.ProcessMessages; Dec(calc); Label1.Caption := IntToStr(calc); Delay(1000); end; end;
Delphi-Quellcode:
procedure delay(msec:longint);
var start,stop:longint; begin start := gettickcount; repeat stop := gettickcount; application.processmessages; until (stop - start ) >= msec; end; procedure TForm1.Button1Click(Sender: TObject); var i : Integer; begin for i := 60 downto 0 do begin Application.ProcessMessages; Label1.Caption := IntToStr(i); Delay(1000); end; end; |
Ja der soll aber anzeigen wie viele Sekunden er NOCH drauch!
|
*push* *pop*
Kuck dir noch mal die zwei anderen Code-Schnipsel an. |
Mhh dann steht aber nur da:
Noch -1 Sekunde |
Ist getestet und bei mir zählt er brav runter. Poste mal, was du jetzt hast.
|
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer; begin if Edit1.Text < '1' then Application.MessageBox('Sie müssen eine Zahl eingeben die größer als 0 ist!','Fehler',16); for i:=60 downto 0 do; begin Application.ProcessMessages; panel1.caption:='Noch ' + IntToStr(i) + ' Sekunden'; delay(1000); end; end; |
Frag mich bitte nicht, was da los ist. Meiner geht, deiner nicht:
Delphi-Quellcode:
Aus irgendeinen Grund wird bei dir Delay nicht richtig ausgeführt.
procedure delay(msec:longint);
var start,stop:longint; begin start := gettickcount; repeat stop := gettickcount; application.processmessages; until (stop - start ) >= msec; end; // smax procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin for i:= 60 downto 0 do; begin Application.ProcessMessages; panel1.caption:='Noch ' + IntToStr(i) + ' Sekunden'; Delay(1000); end; end; // Luckie //procedure TForm1.Button1Click(Sender: TObject); //var // i : Integer; //begin // for i := 60 downto 0 do // begin // Application.ProcessMessages; // Panel1.Caption := 'Noch '+IntToStr(i)+' Sekunden'; // Delay(1000); // end; //end; sakura hat den Unterschied gefunden: Mach das Semikolon nach dem do mal weg. :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz