Aquí va una función recién salida del horno.
Lo que hace es devolver los minutos transcurridos entre dos fechas (TDateTime). Quizás deberías plantearte que el campo Consumo fuera un Integer pues almacena minutos, no una fecha ni un instante.
Código:
function MinutosEntreFechas (d1, d2 : TDateTime) : Longint;
var
ds1, ds2 : TTimeStamp;
begin
// aquí se podría comprobar que d2 es mayor que d1
ds1 := DateTimeToTimeStamp (d1);
ds2 := DateTimeToTimeStamp (d2);
if ds2.Date = ds1.Date then
result := (ds2.Time - ds1.Time) div 60000
else result := ((ds2.Time + 86400000 - ds1.Time) div 60000) + (ds2.Date - ds1.Date - 1) * 1440;
end;
Supongo que capturas cada instante mediante la función Now, que devuelve Fecha + Hora.