控件的属性有关问题

控件的属性问题
有时候我们在遍历窗体控件时,经常看到两种写法

for i := 0 to AControl.ControlCount - 1 do
self.Controls[i]
for i := 0 to self.ComponentCount - 1 do
self.Components[i] 

那么请问一下 ControlCount, 与ComponentCount 有什么区别....
什么情况下用哪一种写法
------解决方案--------------------
请参看这个。