1. Список говнокодов пользователя KOTOM

    Всего: 4

  2. Pascal / Говнокод #28100

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function rand:LongInt;
    {$IFOPT J-} {$J+} {$DEFINE NoJ} {$ENDIF}
    const next:LongInt=1;
    {$IFDEF NoJ} {$J-} {$UNDEF NoJ} {$ENDIF}
    begin
    next:=next*1103515245+12345;
    Result:=(next div 65536) mod 32768;
    end;

    Краткая инструкция как сделать static unsigned long int на Delphi.

    KOTOM, 31 Марта 2022

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

    −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
    1)
    const
      OUT_OF_BOUNDS:TPoint=(X:-1; Y:-1);
    var
      INT_OUT_OF_BOUNDS:Integer absolute OUT_OF_BOUNDS;
    
    TargetForm.Perform(WM_LBUTTONUP,0,INT_OUT_OF_BOUNDS);
    
    2)
    const
      ZERO_ZERO:TPoint=(X:0; Y:0);
    var
      INT_ZERO_ZERO:Integer absolute ZERO_ZERO;
    
    TargetForm.Perform(WM_LBUTTONUP,0,INT_ZERO_ZERO);
    
    3)
    TargetForm.Perform(WM_LBUTTONUP,0,0);

    Болею. Стояла задача воспроизвести системное меню. Но оказалось, что при клике на элемент фейкового системного меню, форме не посылается WM_LBUTTONUP и кнопка-иконка не перекрашивается в ненажатый вид. Решил перформить WM_LBUTTONUP прямо при клике, но туда нужно передавать координаты мышки куда был совершён клик в High(lParam) и Low(lParam). Сначала хотел передавать -1;-1 но подумал что передавать туда $FFFFFFFF как-то некрасиво, а прямое приведение типов а-ля Integer(Point(-1,-1)) оно у меня хавать не захотело, и поэтому красоты ради наговнокодил первый вариант кода. Потом подумал, а что если там только положительные значения, будет же 65535;65535 непорядок, лучше буду передавать нули. Впихнуть туда просто 0 сразу в голову не пришло (болею же, башка квадратная) и наговнокодил второй вариант.

    Потом, конечно же, написал всё по нормальному.

    KOTOM, 07 Января 2020

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

    +1000

    1. 1
    2. 2
    3. 3
    4. 4
    procedure PP.Execute;
    begin inherited;
    (Sender as TIndusImage).KOT;
    end;

    В Delphi XE, не знаю с какой версии начиная (в XE7 и XE8 точно) крупные проблемы с TGifImage, а если точнее - если быстро и много их менять, то рано или поздно вываливается тупо всё вместе с интерфейсом (100% где-то в потоках налажали), причем если быстро менять BMP, то всё ОК.

    Пришла в голову идея в потоке самому менять кадры анимации, подгружая их как BMP, и дабы затестить сработает ли вообще, начал писать тестовую прогу.

    Писал особо не заботясь ни о чем, а потом заметил вот таких индусских котов.

    KOTOM, 03 Августа 2015

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

    +86

    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
    function TSnifferMainForm.GetSetInjected(pID:Cardinal; Get:Boolean=False):Boolean;
    type rParam=record _pID:Cardinal; _Get,_Res:Boolean; end;
    const PE_STR='*RODC_PE ';
    var Params:rParam;
    function ProcCloseEnum(Handle:THandle; _Params:Integer):BOOL; stdcall;
    var TempPID:Cardinal; hCap:string; lCap:integer;
    begin
    Result:=True;
    GetWindowThreadProcessId(Handle,TempPID);
    if TempPID=rParam(Pointer(_Params)^)._pID then begin
    lCap:=SendMessage(Handle,WM_GETTEXTLENGTH,0,0);
    lCap:=lCap+1;
    SetLength(hCap,lCap-1);
    SendMessage(Handle,WM_GETTEXT,lCap,LongInt(@hCap[1]));
    if not rParam(Pointer(_Params)^)._Get then if Pos(PE_STR,hCap)=0 then SetWindowText(Handle,PAnsiChar(PE_STR+hCap)) else SetWindowText(Handle,PAnsiChar(StringReplace(hCap,PE_STR,'',[rfReplaceAll])))
    else if Pos(PE_STR,hCap)<>1 then rParam(Pointer(_Params)^)._Res:=False else rParam(Pointer(_Params)^)._Res:=True;
    Result:=False; end;
    end;
    begin
    Params._pID:=pID; Params._Get:=Get;
    EnumWindows(@ProcCloseEnum,Integer(@Params));
    Result:=Params._Res;
    end;

    Нет, сраный коллбек, я сделаю тебя локальным чего бы мне это не стоило!

    KOTOM, 12 Января 2015

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