The TControl.Components array holds all components whose Owner is the Control in question, to find all child controls you have to use the TWinControl.Controls array which holds all controls whose Parent is the WinControl in question. So instead of ComponentCount and Components[] you have to use ControlCount and Controls[] - like dseligo just pointed out.