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

    +92.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    case MessageDlg('Сформировать отчет за месяц (YES), квартал (NO), год (CANCEL)?',mtWarning,[mbYes,mbNo,mbCancel],0) of
    mrYes://...
    mrNo://...
    mrCancel://...
    end;

    Интересно, что будет, если потребуется расширить программу (добавить новые временные периоды)?

    Запостил: Lester, 31 Января 2010

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

    • Разные варианты могут быть дл ярасширения. например:
      Сформировать отчет за неделю или месяц (YES), квартал или год (NO)
      Ну а потом о каждому из нажатий уточнение:
      Сформировать отчет за неделю (YES), месяц (NO)
      и т.д.

      кароче, возможностей для расширения просто немеряно (ржу с кода) :)
      Ответить
      • Приятно посмеяться.
        Только мне на новой работе приходится это чудо сопровождать по наследству.
        И это просто полный п****ц.
        Одно дело, когда человек говнокодит вследствие непонимания каких-то базовых принципов программирования, другое – когда говнокодит сознательно из-за банальной ленн (тупости).
        Как мне сказал автор этого фрагмента – было лень добавлять элементы управления.
        В этой программе я только начал разбираться, так что продолжение следует…
        Ответить
        • >> Только мне на новой работе приходится это чудо сопровождать по наследству.
          Увольняйся нахрен из такой конторы, а автору под жопу ногами надавай
          Ответить
          • Автору под жопу надавать ногами хочется, но автор женщина. А женщин бить не комильфо. Хотя в данном конкретном случае…
            Ответить
    • Автору кода было лень рисовать новую форму.
      Надо тогда уж так, чтобы названия кнопок соответствовали содержанию:
      Первый вопрос "сформировать отчёт за год"? И 3 варианта. Если нажато нет, то второй вопрос "может тогда за квартал?". А третий вопрос "ну тогда хотя бы за месяц?".
      При этом число вопросов будет неограничено.
      Ответить
    • это же очевидно! Нажмите одновременно YES+NO, YES+CANCEL, CANCEL+YES, YES+CANCEL+NO
      Ответить
    • Да и вообще не оптимальный код. Я бы убрал все кроме ОК. ОК - отчет за месяц. Год=12 месяцев - 12 кликов, квартал=4 месяца...)))
      Ответить
    • Ещё на 3 периода можно навесить Abort? Retry? Ignore? )))
      Ответить
    • Отлично!
      Никто не уйдет без отчета!
      Еще хорошо:
      Отформатировать диск? OK - диск C, NO - диск D, CANCEL - оба.
      Ответить
    • этапипец!
      Спасибо, поржал.
      Ответить
    • Кульненько :D
      Ответить

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