- 1
- 2
- 3
i := -7; // если после этой строчки загнать в отладчик i shr 1, то отладчик покажет -4
i := i shr 1; // после этой строчки i становится равно 2147483644
i := (-7) shr 1; // после этой строчки i становится равно 4Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+101
i := -7; // если после этой строчки загнать в отладчик i shr 1, то отладчик покажет -4
i := i shr 1; // после этой строчки i становится равно 2147483644
i := (-7) shr 1; // после этой строчки i становится равно 4Delphi7 такой Delphi7...
http://www.gamedev.ru/code/forum/?id=138759&page=25#m367+105
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;
+100
case
   0: FilterList.Add('RCHECK = '+''''+'+'+'''');
   1: FilterList.Add('RCHECK = '+''''+'-'+'''');
...
            Автор кода жжот. Код реально работает. Но прочитать такое даже автор по прошествии года не сможет.
Можно было проще 
  0:FilterList.Add('RCHECK = ''+''');
        
+123
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. Алгоритм, так сказать, тот же.
        
+108
if (rmes<>'')and(rmes<>#13#10)and(rmes<>#13#10#13#10)and(rmes<>#13#10#13#10#13#10) thenЭталонный условный оператор прямо из Парижской Дельфийской палатки мер и весов.
+120
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.
        
+120
// 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 себе на лапки.
+98
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}Говно?
+96
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;Процедура "дёрганья" диска ))
+106
function TmainForm1.getLetterFinger( letter: String ): Integer;
begin
  letter := UpperCase( letter );
  if ( letter = 'Ё' ) or ( letter = '1' ) or ( letter = 'Й' ) or
    ( letter = 'Ф' ) or ( letter = 'Я' ) or ( letter = '~' ) or
    ( letter = '!' ) or ( letter = 'Q' ) or ( letter = 'A' ) or
    ( letter = 'Z' ) or ( letter = 'LSHIFT' ) or ( letter = 'LCTRL' ) or
    ( letter = 'TAB' ) or ( letter = 'CAPS' ) or ( letter = 'SHIFT' ) then
    Result := 1;
  if ( letter = '2' ) or ( letter = '@' ) or ( letter = '"' ) or
    ( letter = 'W' ) or ( letter = 'S' ) or ( letter = 'X' ) or
    ( letter = 'Ц' ) or ( letter = 'Ы' ) or ( letter = 'Ч' ) then
    Result := 2;
  if ( letter = '3' ) or ( letter = '№' ) or ( letter = '#' ) or
    ( letter = 'E' ) or ( letter = 'D' ) or ( letter = 'C' ) or
    ( letter = 'У' ) or ( letter = 'В' ) or ( letter = 'С' ) then
    Result := 3;
  if ( letter = '4' ) or ( letter = ';' ) or ( letter = '$' ) or
    ( letter = 'R' ) or ( letter = 'F' ) or ( letter = 'V' ) or
    ( letter = 'К' ) or ( letter = 'А' ) or ( letter = 'М' ) or
    ( letter = '5' ) or ( letter = '%' ) or ( letter = 'Е' ) or
    ( letter = 'П' ) or ( letter = 'И' ) or ( letter = 'Е' ) or
    ( letter = 'T' ) or ( letter = 'G' ) or ( letter = 'B' ) then
    Result := 4;
  if ( letter = 'LSPACE' ) or ( letter = 'LATL' ) then
    Result := 5;
  if ( letter = 'RSPACE' ) or ( letter = 'RATL' ) then
    Result := 6;
  if ( letter = '&' ) or ( letter = '?' ) or ( letter = '7' ) or
    ( letter = 'Y' ) or ( letter = 'U' ) or ( letter = 'H' ) or
    ( letter = 'J' ) or ( letter = 'N' ) or ( letter = 'M' ) or
    ( letter = 'Н' ) or ( letter = 'Г' ) or ( letter = 'Р' ) or
    ( letter = 'О' ) or ( letter = 'Т' ) or ( letter = 'Ь' ) then
    Result := 7;
  if ( letter = '8' ) or ( letter = '*' ) or ( letter = 'Ш' ) or
    ( letter = 'Л' ) or ( letter = 'Б' ) or ( letter = ',' ) or
    ( letter = '<' ) or ( letter = 'K' ) or ( letter = 'I' ) then
    Result := 8;
  if ( letter = '9' ) or ( letter = '(' ) or ( letter = 'O' ) or
    ( letter = 'L' ) or ( letter = '.' ) or ( letter = '>' ) or
    ( letter = 'Щ' ) or ( letter = 'Д' ) or ( letter = 'Ю' ) then
    Result := 9;
  if ( letter = '0' ) or ( letter = ')' ) or ( letter = '-' ) or
    ( letter = '_' ) or ( letter = '+' ) or ( letter = '=' ) or
    ( letter = 'BACKSPACE' ) or ( letter = 'ENTER' ) or
    ( letter = 'RSHIFT' ) or ( letter = 'P' ) or ( letter = '{' ) or
    ( letter = '[' ) or ( letter = '}' ) or ( letter = ']' ) or
    ( letter = ':' ) or ( letter = ';' ) or ( letter = '''' ) or
    ( letter = '"' ) or ( letter = '/' ) or ( letter = '?' ) or
    ( letter = '\' ) or ( letter = '/' ) or ( letter = '?' ) or
    ( letter = '|' ) or ( letter = 'Ж' ) or ( letter = 'Э' ) or
    ( letter = '.' ) or ( letter = ',' ) or ( letter = 'З' ) or
    ( letter = 'Х' ) or ( letter = 'Ъ' ) then
    Result := 10;
end;Nuff said.