Hola Juan Reyes
Por lo que veo la ultima sentencia es la que mas o menos funciona, si es asi yo la dejaria e intentaria un solo cambio:
Código Delphi
[-]
t_captura.fieldbyname ('fecha').asdate:= fecha.date;
Hay que tener en cuenta el formato de la base de datos por eso seria interesnate jugar un poco con este, podria decirse algo asi:
Código Delphi
[-]
ShortDateFormat := 'dd/mm/yyyy'; t_captura.fieldbyname ('fecha').asdate:= fecha.date;
Saludos