Hola Bant,
Todos los "if" al hacer una comparación lógica deben de ir entre parentesis, excepto si va sólo uno o es lógico ya de por si.
eje.
Código Delphi
[-]if Heroe.Top > 8 then
...
if (Heroe.Top > 8) and Heroe.Visible then
...
if Heroe.Enabled and Heroe.Visible then
...
Este último no se necesita parentesis para comprobar su lógica porque ya de por si son lógicos
Un saludo.