From a494e8fc10088bbf7e99dda8f25dd673fc36194b Mon Sep 17 00:00:00 2001 From: blikblum Date: Sun, 17 Apr 2011 12:47:32 +0000 Subject: [PATCH] lcl: update record in DoOnChange instead of EditingDone. Fixes #19167 git-svn-id: trunk@30347 - --- lcl/dbctrls.pp | 2 +- lcl/include/dbcheckbox.inc | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lcl/dbctrls.pp b/lcl/dbctrls.pp index d907b6daae..0c7a0d97e7 100644 --- a/lcl/dbctrls.pp +++ b/lcl/dbctrls.pp @@ -597,6 +597,7 @@ Type protected function GetFieldCheckState: TCheckBoxState; virtual; procedure DataChange(Sender: TObject); virtual; + procedure DoOnChange; override; procedure UpdateData(Sender: TObject); virtual; procedure FocusRequest(Sender: TObject); virtual; procedure Notification(AComponent: TComponent; @@ -605,7 +606,6 @@ Type public constructor Create(TheOwner: TComponent); override; destructor Destroy; override; - procedure EditingDone; override; property Checked; property Field: TField read GetField; property State; diff --git a/lcl/include/dbcheckbox.inc b/lcl/include/dbcheckbox.inc index 808460d8a8..1be02681f9 100644 --- a/lcl/include/dbcheckbox.inc +++ b/lcl/include/dbcheckbox.inc @@ -97,6 +97,16 @@ begin State:=GetFieldCheckState; end; +procedure TDBCheckBox.DoOnChange; +begin + if FDatalink.Edit then begin + FDatalink.Modified; + FDataLink.UpdateRecord; + end else + State:=GetFieldCheckState; + inherited DoOnChange; +end; + procedure TDBCheckBox.UpdateData(Sender: TObject); var NewFieldText: string; @@ -140,16 +150,6 @@ begin DataChange(Self); end; -procedure TDBCheckBox.EditingDone; -begin - if FDatalink.Edit then begin - FDatalink.Modified; - FDataLink.UpdateRecord; - end else - State:=GetFieldCheckState; - inherited EditingDone; -end; - procedure TDBCheckBox.CMGetDataLink(var Message: TLMessage); begin Message.Result := PtrUInt(FDataLink);