From cd7fd1bc6e77d02fbe26ff7a15f76d9f3cf52db3 Mon Sep 17 00:00:00 2001 From: ondrej Date: Sat, 18 Mar 2017 09:20:06 +0000 Subject: [PATCH] lcl: DBLookupComboBox, DBLookupListBox: update Lookup on handle destroy. Issue #31486 git-svn-id: trunk@54441 - --- lcl/dbctrls.pp | 2 ++ lcl/include/dblookupcombobox.inc | 7 +++++++ lcl/include/dblookuplistbox.inc | 7 +++++++ 3 files changed, 16 insertions(+) diff --git a/lcl/dbctrls.pp b/lcl/dbctrls.pp index 76996a9ee7..2bd44d42c4 100644 --- a/lcl/dbctrls.pp +++ b/lcl/dbctrls.pp @@ -450,6 +450,7 @@ Type procedure DataChange(Sender: TObject); override; procedure DoSelectionChange(User: Boolean); override; procedure InitializeWnd; override; + procedure DestroyWnd; override; procedure KeyDown(var Key: Word; Shift: TShiftState); override; procedure Loaded; override; procedure UpdateData(Sender: TObject); override; @@ -799,6 +800,7 @@ Type protected procedure CloseUp; override; procedure InitializeWnd; override; + procedure DestroyWnd; override; procedure KeyDown(var Key: Word; Shift: TShiftState); override; procedure Loaded; override; procedure UpdateData(Sender: TObject); override; diff --git a/lcl/include/dblookupcombobox.inc b/lcl/include/dblookupcombobox.inc index 3474701f42..868ad59c89 100644 --- a/lcl/include/dblookupcombobox.inc +++ b/lcl/include/dblookupcombobox.inc @@ -57,6 +57,13 @@ begin Text := ''; end; +procedure TDBLookupComboBox.DestroyWnd; +begin + inherited; + //after handle destroy Items address changes + FLookup.ControlItems := Items; +end; + procedure TDBLookupComboBox.Select; begin FDataLink.UpdateData; diff --git a/lcl/include/dblookuplistbox.inc b/lcl/include/dblookuplistbox.inc index b9a82cc801..a0e751cba1 100644 --- a/lcl/include/dblookuplistbox.inc +++ b/lcl/include/dblookuplistbox.inc @@ -44,6 +44,13 @@ begin ItemIndex := -1; end; +procedure TDBLookupListBox.DestroyWnd; +begin + inherited; + //after handle destroy Items address changes + FLookup.ControlItems := Items; +end; + procedure TDBLookupListBox.DoSelectionChange(User: Boolean); begin if User then