Olvídate del Store Procedure. Envíale un "Null" al tiempo de insertar:
Código SQL
[-]
insert into familia (cod_familia, descripcion)
values (:cod_familia, :descripcion);
Código Delphi
[-]
uses Variants;
query1.parambyname('cod_familia').Value := null
query1.parambyname('descripcion').AsString := Edit1.text;
query1.ExecSql
Antes de insertar, se ejecuta el trigger before_insert, y allí se pregunta....
Código SQL
[-]
if new.Cod_familia is null then
por tanto el trigger se encarga de generar el autonumérico.
Evitando el problema desde otro frente:
Si usas un MDODataset (equivalente a un IBDataset) tienes la opción de decirle en sus propiedades quien es el generador, y la clave primaria de ese dataset, y además cuando aplicar la generación del autonumérico (al hacer un post, cuando el servidor quiera, al insertar).
Saludos