Hola:
Si usas un sistema SQL, lo ideal es que tengas un campo calculado a nivel de tabla o que programes un trigger Before Insert y otro Before Update donde realizas esos cálculos. En tablas locales, eso lo consigues desde el evento BeforePost de la tabla en cuestión; el campo donde almacenas el nº de meses sería persistente en la base de datos (en la fórmula utilizas los valores de los campos de la tabla, no los de los DBEdits):
Código:
procedure Table1BeforePost;
begin
Table1.FieldByName(Totalhorasmensuales).AsInteger :=
Table1.FieldByName(Hsemanales).AsInteger * 4 +
Table1.FieldByName(Hquincenales).AsInteger *2;
end;
Un saludo