请教sender as 语句的用法,我的怎么产生了无限循环呢???????

请教sender as的用法~
下面的代码是我写的一个单机一个checkbox控件的代码~
作用是想实现每次单机后,改变checkbox的checked属性,可是这段代码一执行,就会出现无限循环~没搞懂为什么~

procedure TForm1.CB1Click(Sender: TObject);
begin

if (sender as TCheckBox).Checked then
begin
Edit5.Enabled:=false;
(sender as TCheckBox).Checked:=false;
end
else begin
(sender as TCheckBox).Checked:=true;
Edit5.Enabled:=true;
end;

end;
[441 byte] By [flyfish99-菜鱼] at [2008-2-13]
# 1
不能这样用!

(sender as TCheckBox).Checked:=true; 这句会激发Click事件!!

procedure TForm1.CB1Click(Sender: TObject);
begin

Edit5.Enabled:=CB1.Checked;
end;
miky-miky at 2007-10-22 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 2
procedure TForm1.CB1Click(Sender: TObject);
begin
(sender as TCheckBox).Checked:=not (sender as TCheckBox).Checked;
Edit5.Enabled:=(sender as TCheckBox).Checked;
end;
wdonghai-小王 at 2007-10-22 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 3
同意楼上说法
goodloop-小志 at 2007-10-22 > top of Msdn China Tech,Delphi,VCL组件开发及应用...