diff --git a/lcl/comctrls.pp b/lcl/comctrls.pp index 182b2eabb2..fb4fd617cf 100644 --- a/lcl/comctrls.pp +++ b/lcl/comctrls.pp @@ -3300,7 +3300,7 @@ type private FAccessibilityOn: Boolean; FBottomItem: TTreeNode; - FCallingOnChange: Boolean; + FCallingChange: Boolean; FEditingItem: TTreeNode; FExpandSignType: TTreeViewExpandSignType; FExpandSignSize: integer; diff --git a/lcl/include/treeview.inc b/lcl/include/treeview.inc index 8a3566e86c..06f362b529 100644 --- a/lcl/include/treeview.inc +++ b/lcl/include/treeview.inc @@ -4275,7 +4275,12 @@ procedure TCustomTreeView.OnChangeTimer(Sender: TObject); begin FChangeTimer.Enabled := False; //debugln('TCustomTreeView.OnChangeTimer'); - Change(FSelectedNode); + FCallingChange := True; + try + Change(FSelectedNode); + finally + FCallingChange := False; + end; end; procedure TCustomTreeView.UpdateScrollbars; @@ -5405,14 +5410,8 @@ end; procedure TCustomTreeView.Change(Node: TTreeNode); begin - if Assigned(FOnChange) then begin - FCallingOnChange := True; - try - FOnChange(Self, Node); - finally - FCallingOnChange := False; - end; - end; + if Assigned(FOnChange) then + FOnChange(Self, Node); end; procedure TCustomTreeView.Delete(Node: TTreeNode); @@ -6044,7 +6043,7 @@ begin Exclude(FStates, tvsSelectionChanged); DoSelectionChanged; FChangeTimer.Enabled := False; - if not FCallingOnChange then // Prevent recursive loop from OnChange handler. + if not FCallingChange then // Prevent recursive loop from OnChange handler. FChangeTimer.Enabled := True; end; end;