Hola Alejandrina....
Creo que no es posible hacer esta diferencia del modo que lo palnteas... Si restas una fecha de otra, lo que te resulta es un número entero que indica los dias .... por tanto tu variable "diferencia" no puede ser TDateTime...
Recuerda que la mayoría de los sistemas tienen una fecha mínima de partida... creo que es 01/01/1900 (no se si sea el caso de Delphi)...
Bueno, el caso es que si restas 2008-09-23 de 2008-09-01 la diferencia será 22 (dias). Pero mira esto:
Si le restas (o sumas) un número entero a una fecha, obtienes una fecha..!!!
Puedes entonces hacer:
Código Delphi
[-]
intdiferencia := FechaMayor - FechaMenor;
NuevaFecha := FechaMayor - intDiferencia;
Espero que te sirva, aunque un poco tarde....
Saludos,