フォーム上のコンポーネントをすべて見えなくしたいんですが・・

procedure TfrmDelStudy.Button6Click(Sender: TObject);
var
i : integer;
begin
for i := 0 to ComponentCount -1 do
begin
Components[i].Visible := false;
あるいは
TComponent.Visible := false;

end;
end;

などと思いつくことはやってみたんですがうまくいきません。
よろしければご教授くださいませ。