TField.OnChange wird bei jede Feldänderung aufgerufen und das Ereignis TField.OnSetText wird von Datenbank-Controls nicht konsequent benutzt.
Ich überlege TField wie folgt dafür zu Erweitern. TField bekoment eine Prozedur ChangeValue und ein Ereignis OnChangeValue.
ChangeValue wird nur von "data controls" aufgerufen und das Ereignis OnChangeValue wird von ChangeValue aufgerufen.
Code: Alles auswählen
{
TField.ChangeValue wird von "data controls" z.B. von TDBCheckBox aufgerufen.
Bedeutung von Variablen:
AAllowed: Änderung erlaubt
AValueChanged: Übergebene Daten(AValue) wurden in ChangeValue geändert,
darauf kann Aufrufer sich selbt Aktualisieren. z.B. Lange Text abgeschnitten usw.
AValue: Feldwert
}
procedure TField.ChangeValue(var AAllowed, AValueChanged: Boolean; AValue: Variant);
type
TFieldChangeValueEvent: procedure(Sender: TField; var AAllowed, AValueChanged: Boolean; AValue: Variant) of object;
Was haltet ihr von der Idee?
Habe ich etwas vergessen, fehlt etwas oder erfinde ich das Rad neu?