Sir Rufo, Dein Vorschlag (Kontext) hat funktioniert. Danke.
Allerdigs nicht mit dem Eintrag der Werte in die Value-Eigenschaft, sondern direkt in die Datenbank (FieldByName ...).
Als angenehmer Nebeneffekt brauche ich die Berechnungen nicht im Grid zu wiederholen.
Über die Datenbank werden Grid und Edits getriggert, egal ob ich die Edits verändere oder die Werte im Grid, die Funktionen laufen immer in den Edits ab.
(Habt ihr meine Erklärung verstanden? Ich kanns nicht besser erklären.)
Nochmal Danke.
Delphi-Quellcode:
...
// STUNDEN geändert
else if TimeContext = sedStunden then
begin
dBegin := FieldByName('TimeBegin').AsFloat;
(* dStd := sedStunden.EditValue;*)
dStd := FieldByName('Anzahl_std').AsInteger;
iMin := FieldByName('Anzahl_min').AsInteger;
x := (dStd/24) + (iMin / 1440); // Zeitwerte dezimal 24:00 = 1 , 12:00 = 0.5
dEnde := dBegin + x;
x := ((dStd*60) + iMin)/60; // Summe in Minuten /60 = Summe in Stunden
iStd := Trunc(x);
iMin := Round(Frac(x) * 60);
if State IN [dsInsert,dsEdit] then
Begin
FieldByName('TimeEnde').AsFloat := dEnde;
FieldByName('Anzahl_std').AsInteger := iStd;
FieldByName('Anzahl_min').AsInteger := iMin;
End;
end ...