Yo utilizo algo parecido, pero que conste que el campo es de tipo Texto.
En una tabla guardo el último valor (como Integer), le sumo uno y luego.
Código Delphi
[-]MiTablaMiDat.Value:=FormatFloat('0000', Numero);
Tambien puedes lanzar un Sql:
Código SQL
[-]Select Max(CampoEntero) From MiTabla
Código Delphi
[-]MiTablaMiDat.Value:=FormatFloat('0000', Quer1.Fields[0].AsInteger);
Un Saludo.