También puedes hacer que el generador solo de valor al campo cuando el usuario le de a guardar.
Es decir, le damos valor al campo en el evento Before Insert de la Tabla.
De esta forma, si el usuario cancela el Alta, no hay problema, puesto que como aún se habrá enviado el INSERT a la base de datos, tampoco se le ha asignado ya un código.
http://www.delphifaq.com/faq/databas...base/f10.shtml
Saludos.