Si puedes, te aconsejo que cambies el tipo del campo; en lugar de usar hora usa un TimeStamp (fecha y hora todo en el mismo campo)
Después puedes usar de la unidad DateUtils, toda una batería de funciones:
- HoursBetween(fecha1, fecha2);
- MinutesBetween
- DaysBetween
- MillisecondsBetween
- etc.
La fecha y hora en sí misma, no se guarda con ningún formato de 12/24 horas. Es al tiempo de mostrarlo en pantalla cuando aplicas el formato que quieres. Para ello puedes usar FormatDateTime('hh:nn:ss',fecha1);
Al usar el formato de fecha+hora, no tendrás ningún problema en sumar dos fechas, o sumarle 33 horas, siempre obtendrás el resultado correcto.
Para esto no hay solución inmediata, pero puedes apoyarte en las funciones mencionadas, o hacer el cálculo tu mismo:
Código Delphi
[-]
var f1, f2 : TDatetime;
h,m,s:word;
begin
s := seconsbetween(f1,f2);
h := s div 3600 ;
m := (s mod 3600) div 60; s := (s mod 3600) mod 60;
Edito:
El resultado no podrás codificarlo como una TTime, ni como TDateTime, ya que tiene el límite en 24 horas, por tanto, jamás podrás crear una hora con 26 horas.
Saludos