如何在程序里检测BUTTON单击了N次之后,就变成灰色不能再使用了,这个检测BUTTON单击的属性是什么啊.

解决方案 »

  1.   

    没有看清楚,需要设置一个button所在form的私有变量,每次处理button的click事件时对这个变量加一。
      

  2.   

    in button.onclick
    button.tag := button.tag + 1;
    button.enabled := button.tag < N;
      

  3.   

    定义一个全局变量i,在按钮的OnClick事件中编写如下代码:
    Procedure Form1.Button1Click(Sender:TObject);
    Begin
    inc(i);
    if i>=20 then
       button1.Enabled:=false;//如果已经点击了20次,则禁用该按钮.
    End;
      

  4.   

    顺便说一下,用我楼上的 xiaocha(小查) 兄弟的方法也较为巧妙,它利用了控件的Tag属性.
      

  5.   

    你可以将按钮的状态保存在注册表中或INI文件中,可以参考一下INI文件及注册表的操作.
      

  6.   

    请问有没有例子参考一下啊,而且读出INI或者注册表文件中的这个程序又是如何的啊.
      

  7.   

    在Delphi中轻松操作注册表:
    http://download.pchome.net/article/2002/09/25/38.htmDelphi中的INI文件编程:
    http://www.yesky.com/20000704/90586.shtml
      

  8.   

    请教我下面的读写注册表的语句,功能是上面所讲的功能,我已经写一个键值在注册表里,但是读出的时候不能读出,而且我想读出之后,这个值加一,到了一定的数字后,程序不能再运行,请教我那里写错了。
    procedure TForm1.Button2Click(Sender: TObject);
    var
     re:Tregistry;  //写入注册表。
     kname,Tecode,Tstr:string;
     i:integer;
       Begin      re:=Tregistry.Create ;
          re.RootKey:=hkey_local_machine;
          kname:='Software\jsjb\Example';
       if re.OpenKey(kname,true) then
         Begin
           Tecode:=re.ReadString('1');
          Try
             re.WriteString('1','i');
             Re.CloseKey;
            Finally
              Re.Free;
            end;
          end;
       end;procedure TForm1.Button3Click(Sender: TObject);
    var
     r:Tregistry;        //读注册表语句
     Sql,Tsql:string;
       Begin
        r:=Tregistry.Create ;
      if r.OpenKey('1',true) then
       Begin
        Sql:=r.ReadString('1');
        edit1.Text:=Sql;
       // r.CloseKey;
       // r.Free;
     end;
    end;