Online
Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
Delphi 12 Athens
|
AW: OnChange behindert Post
22. Jan 2020, 11:43
Das OnChange der sichtbaren Controls reagiert ja, wenn sich der Inhalt dieses Controls ändert
und das passiert auch z.B. beim Open, Close, Scroll, Refresh des DataSets und dort sollte sowas wie Edit/Insert/Post/Delete in einem Event besser nicht vorkommen.
Warum werden die Berechnungen nicht in einem Trigger in der Datenbank erledigt, bzw. im BeforePost, schon beim Speichern des Datensatzes?
Auch als CalcField oder schon im SELECT können während des Ladens Werte berechnet werden.
Im TField.OnChange sollte auf dessen DataSet auch niemals "Post" ausgeführt werden.
Einfaches Beispiel:
FieldA.OnChange ändert FieldB und FieldC und macht anschließend Post
* FieldB.OnChange ändert auch irgendwas und macht ebenfalls Post
weiter im FieldA.OnChange, kommt nun FieldC dran ... was nicht geht, weil schon Post schon durch ist
und immernoch im FieldA.OnChange, käme nun das POST, was oben ausgegraut wurde, da sich das nächste Event dazwischen schob
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
Geändert von himitsu (22. Jan 2020 um 11:57 Uhr)
|