Conceptualmente, está mal:
Código Delphi
[-]ADOQuery_ActLocales.Parameters.ParamByName('Cantidad').Value := EdtCantidad.Text;
Si el campo cantidad está definido como un integer en la base de datos, debes hacer la conversión:
Código Delphi
[-]ADOQuery_ActLocales.Parameters.ParamByName('Cantidad').Value := StrToInt(EdtCantidad.Text);
Al usar Variants, hay que tener cuidado en esos tipos de detalles, que después internamente el Variant puede hacer lo que no esperas.
Saludos