Einzelnen Beitrag anzeigen

DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
185 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Bug bei DataSource/DataSet State (dsInsert) & SetEnabled & DisableControls

  Alt 26. Jan 2015, 15:30
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.

Geändert von DSCHUCH (26. Jan 2015 um 15:35 Uhr)
  Mit Zitat antworten Zitat