Si conoces la condición que va a dar error, deberías controlarla, antes que dejar que genere el error y tratar de subsanarlo.
Reemplaza el try..catch por if..then.
Código PHP:
/*
{}try
{
Query->ParamByName("Codigo")->AsInteger = GroupBox1->Tag;
}
catch(...)
{
}
*/
/* Estoy seguro en este punto que solo existirá el parámetro si es un registro modificado */
if (!lNuevo) {
Query->ParamByName("Codigo")->AsInteger = GroupBox1->Tag;
}