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

    +90

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    Procedure TfMain.CheckButtonsStatus;
    begin
      // Если есть кто-то в персональной очереди, то возобновить активна
      if (dMain.PersonalQueueQuery.RecordCount > 0) then
        TImageButton(mButtons[6]).mlabel.Enabled := true
      else
        TImageButton(mButtons[6]).mlabel.Enabled := False;
    
      // 'приглашен', 3, 'оповещен', 4, 'оповещен', 5, 'прием начат')
      if (dMain.StateQuery.FieldValues['state'] = 'свободно') then
      begin
        TImageButton(mButtons[0]).mlabel.Enabled := False;
        TImageButton(mButtons[1]).mlabel.Enabled := False;
        if dMain.CommonQueueQuery.RecordCount > 0 then
          TImageButton(mButtons[2]).mlabel.Enabled := true
        else
          TImageButton(mButtons[2]).mlabel.Enabled := False;
    
        TImageButton(mButtons[3]).mlabel.Enabled := False;
        TImageButton(mButtons[4]).mlabel.Enabled := False;
        TImageButton(mButtons[5]).mlabel.Enabled := False;
        OperPopupMenu.Items[0].Enabled := False;
      end;
    
      if (dMain.StateQuery.FieldValues['state'] = 'приглашен') or
        (dMain.StateQuery.FieldValues['state'] = 'оповещен') then
      begin
        TImageButton(mButtons[0]).mlabel.Enabled := true;
        TImageButton(mButtons[1]).mlabel.Enabled := False;
        TImageButton(mButtons[2]).mlabel.Enabled := False;
        TImageButton(mButtons[3]).mlabel.Enabled := true;
        TImageButton(mButtons[4]).mlabel.Enabled := False;
        TImageButton(mButtons[5]).mlabel.Enabled := False;
        TImageButton(mButtons[6]).mlabel.Enabled := False;
        if (dMain.StateQuery.FieldValues['state'] = 'приглашен') then
          OperPopupMenu.Items[0].Enabled := False
        else
          OperPopupMenu.Items[0].Enabled := true;
      end;
    
      if (dMain.StateQuery.FieldValues['state'] = 'прием начат') then
      begin
        TImageButton(mButtons[0]).mlabel.Enabled := False;
        TImageButton(mButtons[1]).mlabel.Enabled := true;
        TImageButton(mButtons[2]).mlabel.Enabled := False;
        TImageButton(mButtons[3]).mlabel.Enabled := False;
        TImageButton(mButtons[4]).mlabel.Enabled := true;
        TImageButton(mButtons[5]).mlabel.Enabled := true;
        TImageButton(mButtons[6]).mlabel.Enabled := False;
        OperPopupMenu.Items[0].Enabled := False;
      end;
    end;

    На работе достался проект, состоящий чуть менее чем полностью из подобных высеров.

    chaoswithin, 09 Сентября 2011

    Комментарии (37)
  2. Pascal / Говнокод #7783

    +101

    1. 1
    2. 2
    3. 3
    i := -7; // если после этой строчки загнать в отладчик i shr 1, то отладчик покажет -4
    i := i shr 1; // после этой строчки i становится равно 2147483644
    i := (-7) shr 1; // после этой строчки i становится равно 4

    Delphi7 такой Delphi7...

    http://www.gamedev.ru/code/forum/?id=138759&page=25#m367
    Тарас любит дельфи.

    CPPGovno, 06 Сентября 2011

    Комментарии (150)
  3. Pascal / Говнокод #7698

    +105

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    procedure TForm2.FormCreate(Sender: TObject);
    begin
      SpeedButton1.Left := Form2.ClientWidth div 2 - SpeedButton1.Width;
      SpeedButton1.Top := Form2.ClientHeight div 2 - SpeedButton1.Height;
     
      SpeedButton2.Left := Form2.ClientWidth div 2;
      SpeedButton2.Top := Form2.ClientHeight div 2 - SpeedButton2.Height;
     
      SpeedButton3.Left := Form2.ClientWidth div 2 - SpeedButton3.Width;
      SpeedButton3.Top := Form2.ClientHeight div 2;
     
      SpeedButton4.Left := Form2.ClientWidth div 2;
      SpeedButton4.Top := Form2.ClientHeight div 2;
    end;

    Fai, 30 Августа 2011

    Комментарии (13)
  4. Pascal / Говнокод #7647

    +100

    1. 1
    2. 2
    3. 3
    4. 4
    case
       0: FilterList.Add('RCHECK = '+''''+'+'+'''');
       1: FilterList.Add('RCHECK = '+''''+'-'+'''');
    ...

    Автор кода жжот. Код реально работает. Но прочитать такое даже автор по прошествии года не сможет.

    Можно было проще
    0:FilterList.Add('RCHECK = ''+''');

    siqel, 25 Августа 2011

    Комментарии (7)
  5. Pascal / Говнокод #7624

    +123

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    function HexWrdToStr(Dval : integer) : string;
    var i : integer;
    retstr : string;
    begin
    retstr := '';
    i := (Dval AND $F000) DIV $1000;
    case i of
      0 : retstr := retstr + '0';
      1 : retstr := retstr + '1';
      2 : retstr := retstr + '2';
      3 : retstr := retstr + '3';
      4 : retstr := retstr + '4';
      5 : retstr := retstr + '5';
      6 : retstr := retstr + '6';
      7 : retstr := retstr + '7';
      8 : retstr := retstr + '8';
      9 : retstr := retstr + '9';
      10 : retstr := retstr + 'A';
      11 : retstr := retstr + 'B';
      12 : retstr := retstr + 'C';
      13 : retstr := retstr + 'D';
      14 : retstr := retstr + 'E';
      15 : retstr := retstr + 'F';
    end;
    i := (Dval AND $F00) DIV $100;
    case i of
      0 : retstr := retstr + '0';
      1 : retstr := retstr + '1';
      2 : retstr := retstr + '2';
      3 : retstr := retstr + '3';
      4 : retstr := retstr + '4';
      5 : retstr := retstr + '5';
      6 : retstr := retstr + '6';
      7 : retstr := retstr + '7';
      8 : retstr := retstr + '8';
      9 : retstr := retstr + '9';
      10 : retstr := retstr + 'A';
      11 : retstr := retstr + 'B';
      12 : retstr := retstr + 'C';
      13 : retstr := retstr + 'D';
      14 : retstr := retstr + 'E';
      15 : retstr := retstr + 'F';
    end;
    i := (Dval AND $F0) DIV $10;
    case i of
      0 : retstr := retstr + '0';
      1 : retstr := retstr + '1';
      2 : retstr := retstr + '2';
      3 : retstr := retstr + '3';
      4 : retstr := retstr + '4';
      5 : retstr := retstr + '5';
      6 : retstr := retstr + '6';
      7 : retstr := retstr + '7';
      8 : retstr := retstr + '8';
      9 : retstr := retstr + '9';
      10 : retstr := retstr + 'A';
      11 : retstr := retstr + 'B';
      12 : retstr := retstr + 'C';
      13 : retstr := retstr + 'D';
      14 : retstr := retstr + 'E';
      15 : retstr := retstr + 'F';
    end;
    i := Dval AND $F;
    case i of
      0 : retstr := retstr + '0';
      1 : retstr := retstr + '1';
      2 : retstr := retstr + '2';
      3 : retstr := retstr + '3';
      4 : retstr := retstr + '4';
      5 : retstr := retstr + '5';
      6 : retstr := retstr + '6';
      7 : retstr := retstr + '7';
      8 : retstr := retstr + '8';
      9 : retstr := retstr + '9';
      10 : retstr := retstr + 'A';
      11 : retstr := retstr + 'B';
      12 : retstr := retstr + 'C';
      13 : retstr := retstr + 'D';
      14 : retstr := retstr + 'E';
      15 : retstr := retstr + 'F';
    end;
    HexWrdToStr := retstr;
    end;

    Авторы - программисты из FTDI, взято из экзамплов работы с USB-конвертерами.
    Полный текст можно найти здесь: __http://www.ftdichip.com/Support/SoftwareExamples/CodeExamples/Delphi.htm

    З.Ы. Ниже по тексту идет аналогичная функция HexByteToStr. Алгоритм, так сказать, тот же.

    1291, 23 Августа 2011

    Комментарии (10)
  6. Pascal / Говнокод #7586

    +108

    1. 1
    if (rmes<>'')and(rmes<>#13#10)and(rmes<>#13#10#13#10)and(rmes<>#13#10#13#10#13#10) then

    Эталонный условный оператор прямо из Парижской Дельфийской палатки мер и весов.

    bugmenot, 18 Августа 2011

    Комментарии (16)
  7. Pascal / Говнокод #7472

    +120

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    VAR
    m0:array[0..61,0..41]of byte;
    ma:array[1..60,1..40]of byte;
    I,J:byte;
    BEGIN
    randomize;
    for I:=0to 61do
    for J:=0to 41do
    if (I=0) or
       (I=61)or
       (J=0) or
       (J=61)
               then m0[I,J]:=0
               else m0[I,J]:=random(2);
    for I:=1to 60do
    for J:=1to 40do
    if m0[I,J]=1then ma[I,J]:=9
                else ma[I,J]:=m0[ I-1 , J-1  ] +
                                    m0[ I-1 , J     ] +
                                    m0[ I+1 , J+1 ]+
                                    m0[ I   , J+1  ]+
                                    m0[ I   , J-1   ]+
                                    m0[ I-1 , J+1 ]+
                                    m0[ I+1 , J-1 ]+
                                    m0[ I+1 , J    ];
    ... ... ... ... ... ... ... ... ... ... 
    ... ... ... ... ... ... ... ... ... ... 
    END.

    Начало игры САПЁР. Край массива заполняем нулями,
    середину - 0 или 1. В меньшем массиве складываем соседние
    клетки (выходит от 0 до 8), если мина - 9.

    dos, 06 Августа 2011

    Комментарии (14)
  8. Pascal / Говнокод #7431

    +120

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    // Check if You need Administrator-level access to create a folder
    try
      mkdir(SDirectory + '\~TEST');
    except
      on E: exception do
      begin
        if E.message = 'File access denied' then
        begin
          MessageBox(self.Handle,
            'You need Administrator-level access to create this folder', '', MB_ICONERROR);
          exit;
        end;
      end;
    end;
    RmDir(SDirectory + '\~TEST');

    Мартышки плакали, кололись, но продолжали ронять UAC себе на лапки.

    bugmenot, 03 Августа 2011

    Комментарии (3)
  9. Pascal / Говнокод #7423

    +98

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    case ColorChunkStart of  
       0 : result := RGB(255,   
                         (255 div ColorChunk) * ColorChunkIndex,   
                         0);   
       1 : result := RGB(255 - (255 div ColorChunk) * ColorChunkIndex,   
                         255,   
                         0);   
       2 : result := RGB(0, 255, (255 div ColorChunk) * ColorChunkIndex);   
       3 : result := RGB(0,   
                         255 - (255 div ColorChunk) * ColorChunkIndex,   
                         255);   
       4 : result := RGB((255 div ColorChunk) * ColorChunkIndex,   
                         0,   
                         255);   
       5 : result := RGB(255,   
                         0,   
                         255 - (255 div ColorChunk) * ColorChunkIndex);   
      else  
        if WrapToRed <> false then  
          result := RGB(255, 0, 0) else  
          result := RGB(255, 0, 255);   
    end;{Case}

    Говно?

    Fai, 02 Августа 2011

    Комментарии (23)
  10. Pascal / Говнокод #7408

    +96

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    procedure TForm1.Timer1Timer(Sender: TObject);//интервал 1 минута
    var
      f: file of byte;
      c: byte;
    begin
      assignfile(f, 'c:\0.dsk');
      if fileexists('c:\0.dsk') then reset(f) else rewrite(f);// :)
      c := 0;
      write(f, c);
      closefile(f);
    end;

    Процедура "дёрганья" диска ))

    eoln, 01 Августа 2011

    Комментарии (15)