- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 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;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 4
+1
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.
−3
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 сразу в голову не пришло (болею же, башка квадратная) и наговнокодил второй вариант.
Потом, конечно же, написал всё по нормальному.
+1000
procedure PP.Execute;
begin inherited;
(Sender as TIndusImage).KOT;
end;
В Delphi XE, не знаю с какой версии начиная (в XE7 и XE8 точно) крупные проблемы с TGifImage, а если точнее - если быстро и много их менять, то рано или поздно вываливается тупо всё вместе с интерфейсом (100% где-то в потоках налажали), причем если быстро менять BMP, то всё ОК.
Пришла в голову идея в потоке самому менять кадры анимации, подгружая их как BMP, и дабы затестить сработает ли вообще, начал писать тестовую прогу.
Писал особо не заботясь ни о чем, а потом заметил вот таких индусских котов.
+86
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;
Нет, сраный коллбек, я сделаю тебя локальным чего бы мне это не стоило!