Hola...
¿Ya probaste tu código paso a paso usando la tecla F7 y
Break points? Esto para que verifiques que los valores de los parámetros son los esperados. Esto por que no veo gran problema con tu código, así que podría ser que no estás pasando bien los valores a los parámetros.
Otra cosa, en una sentencia
IF usando variables de tipo
Boolean, no es necesario hacer la comparación
ACTI = True o
ACTI = False... con que hagas algo como:
Código Delphi
[-]
if Acti then
if not Acti then
es más que suficiente.
Saludos...