Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.652 Beiträge
 
Delphi 12 Athens
 
#8

AW: D7: TField.OnChange wann löst der Event aus?

  Alt 29. Apr 2025, 15:46
Wo liegt da mein Denkfehler bzw. wann werden die OnChange-Events ausgelöst?
Das passiert im TDataSet.UpdateRecord. Das wird z.B. implizit im Post oder CheckBrowseMode aufgerufen und sorgt dafür, dass alle DB-aware Controls ihre Daten in den entsprechenden Feldern abspeichern.

Siehe z.B. in TDBCheckBox.UpdateData (das wird dabei nämlich ausgeführt):
Delphi-Quellcode:
procedure TDBCheckBox.UpdateData(Sender: TObject);
var
  Pos: Integer;
  S: string;
begin
  if State = cbGrayed then
    FDataLink.Field.Clear
  else
    if FDataLink.Field.DataType = ftBoolean then
      FDataLink.Field.AsBoolean := Checked
    else
    begin
      if Checked then S := FValueCheck else S := FValueUncheck;
      Pos := 1;
      FDataLink.Field.Text := ExtractFieldName(S, Pos);
    end;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat