1. Pascal / Говнокод #2559

    +101.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    sec:=sec+1;
    if sec>59 then begin sec:=0; min:=min+1; end;
    if min>59 then begin min:=0; ch:=ch+1; end;
    statusbar1.Panels.Items[1].Text:=IntToStr(ch)+':'+IntToStr(min)+':'+IntToStr(sec);
    end;

    таймер

    Запостил: xXx_totalwar, 06 Февраля 2010

    Комментарии (13) RSS

    • Очень интересный выход) в свое время так же делал)))
      Ответить
    • Где здесь говнокод?
      Ответить
      • +1. Единственное, что я вижу, -- это то, что можно было использовать одну переменную, под секунды. Часы вычислять как sec/3600, минуты как (sec/60)%60, ну а секунды как sec%60.
        Ответить
        • Хм, ну в оригинале даже лучше. Не приходится раз в секунду делать два деления и два деления с остатком :)
          Где здесь говнокод, xXx_totalwar?
          Ответить
        • И каждый раз, когда надо вставить время, Вы собираетесь делить? Это оправдано только в тех случаях, когда памяти совсем мало, а мегагерцев много...
          Ответить
      • В даном случае использован компонент TTimer, который не гарантирует точное срабатывание. Потому часики- то и будут спешить.
        Ответить
        • Касаемо времени винда вообще ничего не гарантирует, т.к. не является ОСРВ.
          А интервал таймера меньше 10 мс вообще крайне сложно получить.

          Я в точности так (как автор кода) делал часы под сигнальный процессор - только таймер был аппаратный и не спешил ))
          Ответить
      • tatusbar1.Panels.Items[1].Text := FormatDateTime('HH:MM:SS',now);
        вот в этом и говнокод (если аффтар хотел часики)
        Ответить
        • За подобный код каждый раз бью знакомого по рукам. И все равно каждый раз одно и тоже.
          Ответить
    • есть же TTimer
      Ответить
    • Вот получается у людей по 25+ часов в сутки.
      Ответить
      • Наверное, им с учетом этого таймера почасово платят.
        Ответить

    Добавить комментарий