diff --git a/source/tabletools.dfm b/source/tabletools.dfm index 093002ae..49e43246 100644 --- a/source/tabletools.dfm +++ b/source/tabletools.dfm @@ -92,6 +92,7 @@ object frmTableTools: TfrmTableTools TreeOptions.PaintOptions = [toHotTrack, toShowButtons, toShowDropmark, toShowTreeLines, toThemeAware, toUseBlendedImages, toUseExplorerTheme, toHideTreeLinesIfThemed] OnChange = TreeObjectsChange OnChecked = TreeObjectsChecked + OnChecking = TreeObjectsChecking OnGetText = TreeObjectsGetText OnPaintText = TreeObjectsPaintText OnGetImageIndex = TreeObjectsGetImageIndex diff --git a/source/tabletools.pas b/source/tabletools.pas index 0d082061..ef69bcf3 100644 --- a/source/tabletools.pas +++ b/source/tabletools.pas @@ -101,6 +101,8 @@ type Column: TColumnIndex; TextType: TVSTTextType); procedure chkBulkTableEditCheckComboClick(Sender: TObject); procedure TreeObjectsChange(Sender: TBaseVirtualTree; Node: PVirtualNode); + procedure TreeObjectsChecking(Sender: TBaseVirtualTree; Node: PVirtualNode; var NewState: TCheckState; + var Allowed: Boolean); private { Private declarations } FResults: TObjectList; @@ -342,6 +344,16 @@ begin end; +procedure TfrmTableTools.TreeObjectsChecking(Sender: TBaseVirtualTree; Node: PVirtualNode; + var NewState: TCheckState; var Allowed: Boolean); +begin + // Ensure to also toggle check state of not yet initialized nodes + if Sender.GetNodeLevel(Node) = 1 then + Sender.ReinitChildren(Node, false); + Allowed := True; +end; + + procedure TfrmTableTools.TreeObjectsGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: Integer); begin