It's over 800 lines of code and not in english so it's difficult to read.

Here is something odd:
Code:
function TFoablak.pontirany(x1,y1,x2,y2: integer): word;
var szam: integer;
begin
    szam:=round(arctan2(y2-y1,x2-x1));
    if szam<0 then
            szam:=round(szam+2*pi);
    pontirany:=round(360-(szam*180)/pi);
end;
You should set szam: single; instead of integer, and not round it directly from arctan2(). There is too much precision lost for angle (if you have radians as integer there are only about 6 different angles in the whole 360 range.).

Also
Code:
if numofbullets>0 then  // < This line is not needed.
  begin
    i:=0;
    while i<numofbullets-1 do
Lets see what happens if numofbullets = 0:
Code:
i:=0;
    while 0<-1 do
0 is not < -1 so it never enters the while.