Steps to reproduce :
- Create grid with 5 nodes each having 250000 child nodes, set all node's checkType to triStateCheckBox.
- Check root node, grid will select all nodes just fine
- Expand any of those 5 nodes, deselect checkBox. Grid takes much more time to set check states.
Suggestion :
change following methods
procedure TBaseVirtualTree.WMKeyUp(var Message: TWMKeyUp);
procedure TBaseVirtualTree.HandleMouseUp(var Message: TWMMouse; const HitInfo: THitInfo);
replace
DoCheckClick(FCheckNode, FPendingCheckState);
with
BeginUpdate;
try
DoCheckClick(FCheckNode, FPendingCheckState);
finally
EndUpdate;
end;
I'm not shure if it will break something because of issue #805 but it's worth considering. After code change grid selects checkboxes allmost immediately even on million child nodes.
Steps to reproduce :
Suggestion :
change following methods
procedure TBaseVirtualTree.WMKeyUp(var Message: TWMKeyUp);
procedure TBaseVirtualTree.HandleMouseUp(var Message: TWMMouse; const HitInfo: THitInfo);
replace
DoCheckClick(FCheckNode, FPendingCheckState);with
I'm not shure if it will break something because of issue #805 but it's worth considering. After code change grid selects checkboxes allmost immediately even on million child nodes.