Hallo,
mal schmutzig gedacht: Im OnExit-Ereignis der Komponenten ein Post einbauen.
dbedit.DataSource.DataSet.Post;
Allerdings muss Du dann auch sicherstellen, dass ein Editieren in den Eingabefeldern ein
dbedit.DataSource.DataSet.Edit;
ausführt, da weiß ich nicht, ob das automatisch geht.
[
OT]Manchmal kann ein gutgemeinter Service auch zuviel sein. Das von Deinen Anwender gewünschte verhalten würde ich nicht einbauen, es kommt der Tag, an dem Jemand ganz laut schreit, weil es ihn stört, wenn jede Änderung sofort gespeichert ist und er nicht mehr zurück kann, weil er den alten Wert nicht mehr weiß.[/
OT]
Alternative: Mach' Dir 'ne Action, der Du STRG+S als ShortCut zuweist. Wenn der Shortcut betätig wird, kannst Du in der Action ein Post durchführen. Vorteil: Tastaturbenutzer können bei der Tastatur bleiben, Mausschubser können weiter mausen. Und beide können auf den Stand vor der Änderung zurück, solange der Satz im Editiermodus ist.
Eine Eigenschaft, die die Eingabefelder dazu veranlasst, sofort zu speichern ist mir nicht bekannt.
Woran soll ein Eingabefeld denn auch Festmachen, wann eine Änderung abgeschlossen ist?
Wenn des Feld verlassen wird?
Wenn länger als 47,11 Millisekunden keine Eingabe erfolgte?
Nach jedem Tastendruck?
Handelt es sich um eine Massendatenerfassung oder eher um "wir machen hier mal 'ne Eingabe und dort mal 'ne Eingabe"?
Wenn's wirklich um Massenerfassung geht, dann könntest Du auch das KeyDown-Event verwenden:
Wenn Enter gedrückt wir, wird gespeichert. Mit Tab kann man dann immernoch, ohne zu speichern, zwischen den Eingabefeldern wechseln. Bei vielen Eingabefeldern und jeweiligem Speichern könnten sich auch die Antwortzeiten für die Benutzer erhöhen, da ja deutlich mehr Updates gemacht werden müssen.
Kannst Du beim Speichern mit beliebiger Eingabe und unvollständig ausgefüllten Eingabemasken bei der Neuanlage von Datensätzen sicherstellen, dass die Datenbankschlüssel vollständig sind und das ein teilerfasster Satz beim Update von der Datenbank wiedergefunden wird? Ansonsten musst Du ja dann auch noch drauf achten, dass automatisch nur dann gespeichert wird, wenn alle Schlüsselfelder gefüllt sind. Ja nach Komplexität der Eingabemasken, kann Dich dieser kleine Gefallen eine gehörige Portion Arbeit kosten.