procedure TForm1.ButtonStartClick(Sender: TObejct); begin Timer1.Interval := 1000; Tid := Cardinal; Forskel := StrToInt(EditTid.Text); end;
procedure TForm1.Timer1Timer(Sender: TObject); var C: Cardinal; begin C := GetTickCount - Tid; if C >= Forskel then begin ShowMessage('Tiden er gået!'); Timer1.Enabled := False; end else begin Caption := Format('%d dage %d timer %d minutter %d sekunder %d milisekunder', [C div (1000*60*60*24), C div (1000*60*60) mod 24, (C div (1000*60)) mod 60, (C div 1000) mod 60, C mod 1000]); end; end;
procedure Txit.TimerTimer(Sender: TObject); var C: Cardinal; begin C := GetTickCount - Tid; if C >= Forskel then begin timer.Enabled := False; ShowMessage('Tiden er gået!'); end else begin xit.lbl.caption := Format('%d dage %d timer %d minutter %d sekunder %d milisekunder', [C div (1000*60*60*24), C div (1000*60*60) mod 24, (C div (1000*60)) mod 60, (C div 1000) mod 60, C mod 1000]); end;
end;
Den besked med tiden er gået virker, men er egentlig ubrugelig for mit vedkommende, det jeg ikke forstår er hvorfor jeg ikke får min caption til at blive noget...
En Cardinal, Integer, Byte, Boolean, Char osv. er det man kalder en ordinal. Det vil sige at det er en type som har en mindste værdi, en højeste værdi og af og til en mellem værdi, enten i heltal, bogstaver eller en selvdefineret type.
En Cardinal er en 4-bytes variabel som kan indeholde tal fra 0 til 2^32 -1. En Integer har samme størrelse som Cardinal'en, men indeholder tal fra -2^31 til 2^31 -1. En Byte fylder sjovt nok, en byte, og kan indeholde tal fra 0 til 255. Boolean'en fylder en byte, men kan kun antage værdierne True og False.
Der er flere, men hvis du vil lære dem alle at kende bør du anskaffe dig en bog. Per Amdal Steffensen's Delphi 4 Programmering kan anbefales!
GetTickCount er en funktion i Windows som tæller antallet af milisekunder som systemet har kørt siden sidste genstart. Den holder vist omkring 43 dage eller noget (du kan selv regne ud hvor længe).
Er du forresten sikker på at din Timer kører? Fra programmet bør den have Enabled-værdien False (det er en Boolean). Når du så ønsker at starte den sætter du bare værdien til True og så kører det! ;)
Skriv hvis der er mere, ellers vil jeg anbefale dig at læse en bog! ;)
Jeg kan ikke få det til at virke men du hjælper mig med meget :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.