/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
timer
Fra : Calle.


Dato : 15-02-04 23:35


hvordan får man lavet så man kan se en timer tælle ned.

--
Calle



 
 
René Jensen (16-02-2004)
Kommentar
Fra : René Jensen


Dato : 16-02-04 00:06

Calle. wrote:
> hvordan får man lavet så man kan se en timer tælle ned.

Min løsning er ganske simpel, men viser hvordan du laver en
nedtællingsfunktion i et Delphi program.

Jeg benytter en variabel (TimerStop) til at holde styr på hvor mange
sekunder den skal tælle ned fra, f.eks. 10 sekunder, denne erklæres
selvf. i private delen af ens Form1 objekt:

TimerStop: Integer;

Under implementation delen erklæres en hjælpefunktion (SecToStr), som
tager en integer variabel og returnere en string med tidsformatering:

function SecToStr(i: Integer) : string;
var
j, k, l: Integer;
begin
j := i div 3600;
k := (i mod 3600) div 60;
l := (i mod 3600) mod 60;
Result := Format('%.2d:%.2d''%.2d', [j, k, l]);
end;

Når programmet starter sættes TimerStop variablen til det ønskede antal
sekunder, der skal tælles ned fra. Pga. Timer1.OnTimer event'et vil være
forsinket med 1000ms (Timer1.Interval attributten), kaldes SecToStr
funktionen for at vise den aktuelle tid der er tilbage. I Form1.OnCreate
event tilføjes:

TimerStop := 10;
Caption := SecToStr(TimerStop);

Det sidste der mangler er at skrive Timer1.OnTimer event'et:

if TimerStop > 0 then
begin
Dec(TimerStop);
Caption := SecToStr(TimerStop);
end
else
begin
// indsæt selv din ønskede kode, når nedtællingsfunktion afslutter
ShowMessage('Nedtælling færdig.');
end;

Med venlig hilsen,
René Jensen


Finn Bindeballe (16-02-2004)
Kommentar
Fra : Finn Bindeballe


Dato : 16-02-04 08:41

hejsa

vær opmærksom paa, at ttimer er meget upræsis.... det er ikke sikkert at
det gør noget, men jeg sqlle engang bruge noget mere præcist, og jeg
endte op med at bruge "now", som læset systemtiden. Den er meget mere
nøjagtig......

/f

Nicolai Hansen (17-02-2004)
Kommentar
Fra : Nicolai Hansen


Dato : 17-02-04 07:03

> hejsa
>
> vær opmærksom paa, at ttimer er meget upræsis.... det er ikke sikkert at
> det gør noget, men jeg sqlle engang bruge noget mere præcist, og jeg
> endte op med at bruge "now", som læset systemtiden. Den er meget mere
> nøjagtig......
>
> /f

TTimer blir unøjagtig når du går ret meget under 1/10 sek intervaller. Det
mest
præcise er, som anført, at aflæse systemtiden. Det endnu mere mest præcise
er at lægge denne aflæsning i programmets messagehandler (men dette er ofte
sort snak for Delphi folk), så jeg vil foreslå "bare" at lægge aflæsningen i
main
form'ens OnPaint.



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408186
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste