Du kannst zunächst mal in dem Options des DBGrid die Option
dgCancelOnExit auf False setzen.
Wenn der Benutzer das Formular schliest, dann wird ein evtl. geänderter Datensatz autom. gespeichert.
Oder du setzt einen Timer auf das Formular, der alle 10 Sekunden folgende Funktion
aufruft:
Delphi-Quellcode:
procedure PostDataSet(ds: TDataset);
begin
if ds.State
in [dsEdit, dsInsert]
then
begin
try
ds.Post;
except
on e:
Exception do
begin
e.
Message := e.
Message + #13#10'
Dataset: ' + ds.
Name;
raise;
end;
end;
end
end;
Das ergäbe eine Art Autosave-Funktion. Allerdings kann der Benutzer durch das autom. Speichern auch ziemlich gestört werden. Der Timer sollte auf jeden Fall abschaltbar sein.