Hallo,
ist jemand folgender Bug bekannt? Resultat sind unter anderem schief stehende
DB-Navigatoren.
Form, DataSet, DataSource, DBNavigator
Delphi-Quellcode:
DataSet.Open;
DataSet.DisableControls; //DataSource merkt sich State in FState (dsBrowse)
DataSet.Insert; //da Disabled Controls, keine Änderung im DataSource
DataSource.Enabled:=True; //DataSource bekommt zwangsstate "dsInsert"
DataSet.Post; //da Disabled Controls, keine Änderung im DataSource, bleibt auf dsInsert
DataSet.EnableControls; //Abgleich von FDisabledState und DataSet.State: dsBrowse = kein Umsetzen des State der DataSource, somit steht das ungleich. Totales Durcheinander der Status. ;
Delphi-Quellcode:
TDataSet.EnableControls;
...
if FDisableState <> FState then DataEvent(deUpdateState, 0); //durch das falsch zwischengesetzte State mittels Enabled:=True schlägt es hier fehl
Somit steht DataSource auf Insert, DataSet auf Browse.
In kurz: ein wechsel des DataSet.BrowseMode zu vor DisableControls und wechsel des DataSource.EnabledState während DisabledControls führt zum Bug.