Har lavet en TTimer, men vil gerne vise på min form via en TLabel hvor langt TTimeren er nået, hvis nu TTimeren er sat til en time, og der er gået 20 min. vil jeg gerne have min TLabel til at vise 40min.
Vil gerne have min label til at skifte, f. eks når min TTimer tæller ned fra 30 min. så skal min TLabels caption være 30, men når så min TTimer når ned på 29 min. skal min TLabels caption skifte til 29
esneh: I Delphi har man en TDateTime. Det er et decimaltal hvor heltalsdelen er antallet af dage siden en gang i slutningen af det 19'ende århundrede. Decimaldelen er antallet af milisekunder siden kl. 0:0. Det er en genial tingest at lege med løsningen er let:
procedure TfrmMain.btnStartClick(Sender: TObject); var h, m, s: word; begin h := StrToIntDef(leHours.Text,0); m := StrToIntDef(leMinutes.Text,0); s := StrToIntDef(leSeconds.Text,0); fThreshold := now + EncodeTime(h,m,s,0); Timer.Enabled := true; end;
procedure TfrmMain.btnStopClick(Sender: TObject); begin Timer.Enabled := false; end;
procedure TfrmMain.TimerTimer(Sender: TObject); var Delta: TDateTime; begin Delta := fThreshold - now; lStatus.Caption := TimeToStr(Delta); if Delta < 0 then begin Timer.Enabled := false; MessageDlg('Ploing!', mtInformation, [mbOK], 0); end; end;
Synes i øvrigt det link kroning har lagt, er til en dårlig løsning. Alt for megen kode og alt for mange rettelser. Ovenstående virkede straks og kan ikke gøres meget simplere.
Dog har jeg følgende justering. Det irriterede mig, at talte man ned fra 10s, startede displayet med 9 (og sluttede efter 0). Nedenstående rutine tæller ned fra 10 og det er en smagssag hvad man kan lide. Jeg foretrækker nedenstående mens vores mikrobølgeovn foretrækker den første.
procedure TfrmMain.TimerTimer(Sender: TObject); var Delta: TDateTime; begin Delta := fThreshold - now; lStatus.Caption := TimeToStr(IncSecond(Delta)); if Delta <= 0 then begin Timer.Enabled := false; MessageDlg('Ploing!', mtInformation, [mbOK], 0); end; end;
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.