Einzelnen Beitrag anzeigen

süden

Registriert seit: 20. Feb 2009
Ort: Lindau (Bodensee)
75 Beiträge
 
Delphi 2007 Professional
 
#6

AW: DBEdits rufen sich gegenseitig auf

  Alt 14. Mär 2014, 14:01
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 ...
Gruß süden

[Delphi 2007 Pro, WIN 7 Pro, DevEx, Fastreport, TMS]
  Mit Zitat antworten Zitat