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

    +152.9

    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
    procedure TForm1.Button2Click(Sender: TObject);
    var i:dword;
    begin
    if (Checkbox1.Checked)or(Checkbox3.Checked)or(Checkbox2.Checked) then
    begin
    form1.Cursor:=crhourglass;
    Sleep(500);
    progressbar1.Position:=10;
    Sleep(1000);
    progressbar1.Position:=20;
    Sleep(500);
    progressbar1.Position:=50;
    Sleep(1000);
    progressbar1.Position:=100;
    Sleep(500);
    end;

    Трудимся в поте лица. :D

    Говногость, 13 Марта 2010

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

    +152.9

    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
    procedure tplayext.play(iname:string);
    begin
    cd:=false;
    try
    form1.MediaPlayer1.Close;
    form1.MediaPlayer1.filename:=iname;
    form1.label10.Caption:=iname;
    form1.MediaPlayer1.Open;
    form1.MediaPlayer1.play;
    except
    next;
    cd:=true;
    end;
    end;
    procedure tplayext.init(iext:string);
    begin
    name:='';
    paused:=false;
    allplayed:=false;
    ext:=iext;
    TRY
    io:=findfirst(ext,faanyfile,f);
    EXCEPT
    END;
    if io<>0 then
    begin
     done;
     exit;
    end;
    name:=f.Name;
    play(name);
    end;
    procedure tplayext.playplease;
    begin
    if stoped then next;
    end;
    procedure tplayext.next;
    begin
    TRY
    io:=findnext(f);
    EXCEPT
    END;
    if io <>0 then
    begin
     done;
     exit;
    end;
    name:=f.Name;
    play(name);
    end;
    procedure tplayext.done;
    begin
    TRY
    form1.MediaPlayer1.close;
    findclose(f);
    EXCEPT
    END;
    allplayed:=true;
    end;

    Особенно прикалывает вызов метода play в методе next и вызов метода next в методе play.
    Рекурсия!!!!!1111

    Говногость, 13 Марта 2010

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

    +144.8

    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
    FUNCTION PCHARTOSTRING(pc:pchar):string;
      VAR
       s:string;
       //P:PCHAR;
    
       I:word;
       //O:WORD;
       BEGIN
    
       FOR I:=1 TO 255 DO
       begin
       if pc[i]=#0 then
       s[i]:=pc[i-1];
       begin
       setlength(s,i);
       PCHARTOSTRING:=s;
       exit;
       end;
       end;
        setlength(s,255);
       PCHARTOSTRING:=s;
       END;

    И это в Дельфи. O_o

    Говногость, 13 Марта 2010

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

    +100.3

    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
    function rgbagl(r,g,b,a:gldouble):trgbagl;
    var
    t:trgbagl;
    begin
    t.r:=r;
    t.g:=g;
    t.b:=b;
    t.a:=a;
    rgbagl:=t;
    end;
    function trgbaintrgbagl(rgba:trgba):trgbagl;
    begin
    trgbaintrgbagl.r:=rgba.r/255;
    trgbaintrgbagl.g:=rgba.g/255;
    trgbaintrgbagl.b:=rgba.b/255;
    trgbaintrgbagl.a:=rgba.a/255;
    end;
    function trgbaglintrgba(rgbagl:trgbagl):trgba;
    begin
    trgbaglintrgba.r:=trunc(rgbagl.r*255);
    trgbaglintrgba.g:=trunc(rgbagl.g*255);
    trgbaglintrgba.b:=trunc(rgbagl.b*255);
    trgbaglintrgba.a:=trunc(rgbagl.a*255);
    end;
    function trgbaglelmintrgbaelm(elm:gldouble):byte;
    begin
    trgbaglelmintrgbaelm:=trunc(elm*255);
    end;
    function trgbaelmintrgbaglelm(elm:byte):gldouble;
    begin
    trgbaelmintrgbaglelm:=elm/255;
    end;

    Вот так вот.

    Говногость, 13 Марта 2010

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

    +99.3

    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
    procedure setrandomdoubleprecision(value:byte);
    begin
    precision:=10*value;
    end;
    function rangerandomdouble(minrandomdouble,maxrandomdouble:double):double;
    begin
    result:=randomdouble(maxrandomdouble+(-minrandomdouble))+minrandomdouble
    end;
    function randomdouble(maxdouble:double):double;
    var
    l1,l2:integer;
    begin
    l1:=random(trunc(maxdouble));
    l2:=random(trunc(frac(maxdouble)*precision));
    result:=l1+(l2/precision)
    end;

    Рандом с заданной точностью. O_o

    Говногость, 13 Марта 2010

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

    +96.5

    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
    procedure AsmRGBBiter15;assembler;
    procedure AsmRGBBiter16;assembler;
    //procedure AsmRGBBiter24;assembler;
    procedure AsmRGBBiter32;assembler;
    procedure AsmRGBBiterEx15;assembler;
    procedure AsmRGBBiterEx16;assembler;
    //procedure AsmRGBBiterEx24;assembler;
    procedure AsmRGBBiterEx32;assembler;
    procedure RGBBiterEx32(RGB32Stream,RGBNeed:pointer;Count:dword);pascal;assembler;
    //procedure RGBBiterEx24(RGB32Stream,RGBNeed:pointer;Count:dword);pascal;assembler;
    procedure RGBBiterEx16(RGB32Stream,RGBNeed:pointer;Count:dword);pascal;assembler;
    procedure RGBBiterEx15(RGB32Stream,RGBNeed:pointer;Count:dword);pascal;assembler;
    procedure AsmRGB16;assembler;
    procedure AsmRGB15;assembler;
    //procedure AsmRGB24;assembler;
    procedure AsmRGB32;assembler;
    function GetRValue32(color:dword):byte;Pascal;
    function GetGValue32(color:dword):byte;Pascal;
    function GetBValue32(color:dword):byte;Pascal;
    //function GetRValue24(color:dword):byte;Pascal;
    //function GetGValue24(color:dword):byte;Pascal;
    //function GetBValue24(color:dword):byte;Pascal;
    function GetRValue16(color:dword):byte;Pascal;
    function GetGValue16(color:dword):byte;Pascal;
    function GetBValue16(color:dword):byte;Pascal;
    function GetRValue15(color:dword):byte;Pascal;
    function GetGValue15(color:dword):byte;Pascal;
    function GetBValue15(color:dword):byte;Pascal;
    function GetSceenRect:trect;
    procedure DrawSceenHLine32(x1,x2,y,color:dword);pascal;assembler;
    procedure DrawSceenHLine15(x1,x2,y,color:dword);pascal;assembler;
    procedure DrawSceenHLine16(x1,x2,y,color:dword);pascal;assembler;
    //procedure DrawSceenHLine24(x1,x2,y,color:dword);pascal;assembler;
    procedure DrawSceenVLine32(x,y1,y2,color:dword);pascal;assembler;
    //procedure DrawSceenVLine24(y1,y2,x,color:dword);pascal;assembler;
    procedure DrawSceenVLine15(x,y1,y2,color:dword);pascal;assembler;
    procedure DrawSceenVLine16(x,y1,y2,color:dword);pascal;assembler;

    Программа работает только в 32битном режиме экрана. :D

    Говногость, 13 Марта 2010

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

    +98.7

    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
    Procedure Halt;
    begin
    if atomTest<>0 then GlobalDeleteAtom(atomTest);
    TerminateProcess(GetCurrentProcess,0);
    end;
    function RegisterSceenTimer(proc:tproc):dword;
    var i:dword;
    begin
    result:=0;
    for i:=1 to sMaxSceenGradient do
    if  not SceenGradient[i].isNotEmpty then break ;
    if i=sMaxSceenGradient then exit;
    SceenTimers[i]:=proc;
    result:=i;
    end;

    :D

    Говногость, 13 Марта 2010

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

    +87.9

    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
    function LockBack:bool;
    var sd:tddsurfacedesc2;
    begin
    fillchar(sd,sizeof(sd),0);
    sd.dwSize:=sizeof(sd);
    result:=fbacksurface.Lock(nil,sd,DDLOCK_SURFACEMEMORYPTR  or ddlock_nosyslock or DDLOCK_WAIT,0)=dd_ok;
    if not result then exit;
    BackPtr:=sd.lpSurface;
    end;
    function UnLockBack:bool;
    begin
    result:=fbacksurface.UnLock(nil)=dd_ok;
    BackPtr:=nil;
    end;
    function MakeSceenBackPtr:bool;
    begin
    result:=true;
    if backptr=nil then
     result:=lockBack;
    end;
    function GetSceenSafeBackPtr:pointer;//use only this
    begin
    result:=nil;
    if not MakeSceenBackPtr then exit;
    result:=backptr;
    end;

    Тот же проЭкт, что и ниже на DirectDraw7.
    Не смотря на то, что была функция function UnLockBack:bool; - она никогда не вызывалась. Странно, что на многих машинах это работало, тк я успешно выполнял блитинг в заблокированные поверхности в течении многих часов. :D

    Говногость, 13 Марта 2010

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

    +99.7

    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
    function RegisterSceenButton(Caption:shortstring;Rect:trect;dx,dy,ShadowWidth:dword;Style:dword;VerticalGradient,VerticalGradientifMouse,VerticalGradientIfClick:bool;TextColor,ColorTop,ColorBottom,TextColorIfMouse,ColorTopIfMouse,ColorBottomIfMouse,TextColorIfClick,ColorTopIfClick,ColorBottomIfClick,LeftTopColor,RightBottomColor:dword;pushProc:tSBPushProc;Surface:idirectdrawsurface7):dword;
    var i:dword;
    begin
    result:=0;
    for i:=1 to SMaxSceenButton do
    if SceenButton[i].isNotEmpty=false then break;
    if i=SMaxSceenButton then exit;
    ZeroMemory(@SceenButton[i],sizeof(SceenButton[i]));
    SceenButton[i].Caption:=caption;
    SceenButton[i].PushProc:=@pushproc;
    SceenButton[i].Rect:=rect;
    SceenButton[i].dx:=dx;
    SceenButton[i].dy:=dy;
    SceenButton[i].TextColor:=textcolor;
    SceenButton[i].ColorTop:=ColorTop;
    SceenButton[i].ColorBottom:=ColorBottom;
    SceenButton[i].TextColorIfMouse:=textcolorifmouse;
    SceenButton[i].ColorTopIfMouse:=colorTopifmouse;
    SceenButton[i].ColorBottomIfMouse:=colorBottomifmouse;
    SceenButton[i].LeftTopColor:=lefttopcolor;
    SceenButton[i].RightBottomColor:=rightbottomcolor;
    SceenButton[i].ShadowWidth:=ShadowWidth;
    SceenButton[i].TextColorIfClick:=textcolorifclick;
    SceenButton[i].ColorTopIfClick:=colorTopifclick;
    SceenButton[i].ColorBottomIfClick:=colorBottomifclick;
    SceenButton[i].surface:=surface;
    SceenButton[i].Style:=Style;
    SceenButton[i].VerticalGradient:=VerticalGradient;
    SceenButton[i].VerticalGradientIfMouse:=VerticalGradientIfMouse;
    SceenButton[i].VerticalGradientIfClick:=VerticalGradientIfClick;
    SceenButton[i].state:=SSTB_Normal;
    SceenButton[i].isNotEmpty:=true;
    SceenButton[i].State:=SSTB_normal;
    result:=i;
    end;

    Программа, полностью на скинах через DDraw. Гуевое лишь POPUP окно. Зачем мне было это нужно? Работает только в 32битном режиме. В остальных глючит. :D

    Говногость, 13 Марта 2010

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

    +108.7

    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
    Function GetFmtTime:String;
    var
      tmpD : string;
      crdate: TDateTime;
    begin
      crdate := Now;
      tmpD := IntToStr(YearOf(crdate))+'-';
    
      If MonthOf(crdate)<10 Then tmpD := tmpD + '0';
      tmpD := tmpD + IntToStr(MonthOf(crdate))+'-';
    
      If DayOf(crdate)<10 Then tmpD := tmpD + '0';
      tmpD := tmpD + IntToStr(DayOf(crdate))+'(';
    
      If HourOf(crdate)<10 Then tmpD := tmpD + '0';
      tmpD := tmpD + IntToStr(HourOf(crdate)) + '-';
    
      If MinuteOf(crdate)<10 Then tmpD := tmpD + '0';
      tmpD := tmpD + IntToStr(MinuteOf(crdate)) + '-';
    
      If SecondOf(crdate)<10 Then tmpD := tmpD + '0';
      tmpD := tmpD + IntToStr(SecondOf(crdate)) + ')';
    
      Result := tmpD;
    end;

    А почему бы не использовать обычную FormatDateTime?!
    До моего прихода на фирму все пользовались выше приведенным кодом! (и много еще чем!)

    Antonio_net, 17 Февраля 2010

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