1. C# / Говнокод #12227

    +106

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    private void FlowMouseEnter(object sender, MouseEventArgs e)
    {
        var dt = DateTime.Now;
        _currentTime = dt.Hour * 3600 + dt.Minute * 60 + dt.Second;
    }

    запоминаем время наведения на кнопку

    Запостил: ArtFeel, 30 Ноября 2012

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

    • Ну и там дальше:
      private void FlowMouseLeave(object sender, MouseEventArgs e)
      {
          _currentTime = -1;
      }
      
      private void FlowMouseMove(object sender, MouseEventArgs e)
      {
          var dt = DateTime.Now;
          int tmpTime = dt.Hour * 3600 + dt.Minute * 60 + dt.Second;
      
          if (tmpTime - _currentTime > 1) { … }
      }
      Ответить
    • Лепота. =) Сразу вспомнил про легендарный эпический говнокод:
      function getTomorrowDate() { sleep(86400); return strftime("%D"); }
      Ответить
    • Разумеется, в полночь никто программу не запустит...
      Ответить
      • А чем полночь не угодила?
        Ответить
        • Тем, что если FlowMouseEnter произойдет в 23:59:59 то tmpTime никогда не сможет стать больше _currentTime (до выхода мышки за пределы, конечно).

          P.S. Но всем похер, т.к. вероятность бага очень низка, а после выхода мышки за пределы Flow баг пройдет.

          P.P.S. Не понимаю, нахрена нужны эти извращения, просто сохранить DateTime.Now без этих быдлотрансформаций не получится? ;)

          P.P.P.S. Еще баг - если навести мышку на Flow и не двигать ее - код помеченный многоточием не сработает...
          Ответить
    • а что там делается при выполнении условия? очень плавная анимация?
      Ответить
      • Это задержка в одну секунду, после которой выполняется логика клика на кнопку.
        Ответить
        • А sleep() тут не катит? Или он все приложение повесит?
          Ответить
          • facepalm.jpg
            Ответить
          • Имеется ввиду что клик произойдет если держать курсор на кнопке в течении секунды.
            А не то что клик произойдет спустя секунду после наведения.
            Ответить
            • > держать курсор на кнопке в течении секунды

              Теперь понял, но зачем?
              Ответить
              • Наверное, это кнопка вызова лифта в старом многоэтажном доме.
                Ответить
              • Это, что-то вроде CowerFlow, подводишь к краю, и оно скролится.
                Ответить
            • Как раз наоборот))
              Ответить
              • Нужно, чтобы действие выполнялось за секунду до нажатия кнопки.
                Ответить
            • Если быть точным - клик произойдет, если спустя секунду после наведения пошевелить мышью. А если просто держать - не сработает.
              Ответить
    • Time.Now
      Ответить
      • 1) А в шарпе есть Time? Я не знаток шарпа, но мне кажется, что нет.
        2) DateTime тут уместней, т.к. не сбрасывается в полночь, а вычитать их друг из друга можно и без извращений, приведенных в коде.
        Ответить
        • DateTime.TimeOfDay
          Ответить
          • К тому же общее кол-во секунд можно узнать через DateTime.TimeOfDay.TotalSeconds вместо этого адского перемножения.
            Ответить

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