在DELPHI中怎样使按钮在运行中无效(即无法去按按钮),但按钮的颜色不变灰?

解决方案 »

  1.   

    API:    MapWindowPoints()
    将按钮的客户区映射到其它的区域!
      

  2.   

    把Button放在一个Panel上面,然后可用设置panel的Enable属性。
      

  3.   

    procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      Abort;
    end;
      

  4.   

    button1.onclick := nil
      

  5.   

    一种方法是enable ,但要变灰,另一种是使用屏蔽法,即在onclick事件中写代码屏蔽事件,就是简单的弄个BOOL变量,执行onclick时判断一下。一般短暂的禁止,用timer恢复就可以了,如果是使之永远无效,就不恢复咯!
      

  6.   

    把Button放在一个Panel上面,把panel的autosize设成True,
    如果想使按钮在运行中无效,可用:
    panel.enable := false;
      

  7.   

    呵呵,你的要求还真怪。上面各位的答案都很经典呀,尤其同意一下几个:
    button1.onclick := nil
    放张图就好了
    把Button放在一个Panel上面,然后可用设置panel的Enable属性
      

  8.   

    如果我用了button1.onclick := nil
    ,过一段时间我要把按钮恢复过来,该怎么做?
      

  9.   

    如果我用了button1.onclick := nil
    ,过一段时间我要把按钮恢复过来,该怎么做?请大家快点帮助我!!!!!!!!!!!!!!!!!!!!!!!
      

  10.   

    过一段时间再button1.onclick := button1click
      

  11.   

    procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);begin
      if TWinControl(Sender).Tag = 1 then //通过按钮的Tag值来判断
        Abort;end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage('ok');
    end;