procedure Tform1.Checkbox1click(Sender:Object);
begin
if not checkbox1.checked then showmessage('hello');
end;

解决方案 »

  1.   

    //临时屏蔽 checkbox的事件触发
    interface
    ...
    Tform1=class(TForm)
    ...
    private
      isBtnClick:boolean;  // 标志是否按钮产生的事件
    ...
    procedure Tform1.Checkbox1click(Sender:Object);
    begin
    if not isbtnClick then 
       showmessage('hello')
    else
       isBtnClick:=False;  //关闭标志
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
       isBtnClick:=True;
       if checkbox1.Checked then
          checkbox1.Checked:=False
       else
          checkbox1.Checked:=True;
    end;
      

  2.   

    procedure Tform1.button1click(Sender:Object);
    begin
       checkbox1.Checked:=not checkbox1.Checked;
       if checkbox1.Checked then
           CheckBox1.Onclick:=Checkbox1click
       else
           CheckBox1.Onclick:=nil;
    end;
      

  3.   

    procedure Tform1.button1click(Sender:Object);
    begin
    CheckBox1.Onclick:=nil;  
    checkbox1.Checked:=not checkbox1.Checked;
    CheckBox1.Onclick:=Checkbox1click;  
    end;
    It's Ok
      

  4.   

    procedure Tform1.Checkbox1click(Sender:Object);
    begin
    if checkbox1.checked then showmessage('hello');
    end;这么写难道不行吗?