Do not enumerate on TTreeNode.Item

Note to self: Do not enumerate on TTreeNode.Item, it's highly inefficient. Consider this code: [delphi] procedure SelectFocusedControl(_ActCtrl: TWinControl; _Parent: TTreeNode); var j: Integer; CtrlItem: TTreeNode; begin for j := 0 to _Parent.Count - 1 do begin CtrlItem := _Parent.Item[j]; if CtrlItem.Data = _ActCtrl then begin CtrlItem.Selected := true; break; end else SelectFocusedControl(_ActCtrl, CtrlItem); end; end; … Continue reading Do not enumerate on TTreeNode.Item