我下面这个实现按一下button显示一个bitbtn,初始clicknb值为1,按一个button以后clicknb加1,但是按下以后总是只有一个bitbtn显示,如果要实现这个功能要怎么改呢?
还有如果执行完要跳出整个button1click事件要怎么实现呢?拜托各位了!
procedure TForm1.Button1Click(Sender: TObject);
var
      clicknb:real;
begin
  clicknb:=1;
     if  clicknb=1  then
      begin
       bitbtn1.Show;
       bitbtn1.Caption:=edit1.Text;
       v:=edit1.Text;
       edit1.Text:='';
       edit1.SetFocus;
      end else
     if  clicknb=2   then
      begin
       bitbtn2.Caption:=edit1.Text;
       v:=edit1.Text;
       bitbtn2.Show;
       edit1.Text:='';
       edit1.SetFocus;
      end else
     if  clicknb=3   then
      begin
       bitbtn3.Caption:=edit1.Text;
       v:=edit1.Text;
       bitbtn3.Show;
       edit1.Text:='';
       edit1.SetFocus;
      end else
      clicknb:=clicknb+1;
end;

解决方案 »

  1.   

    同一FORM上放2个BUTTON1可以吗
    对象重复
      

  2.   

    每次点击Button1,clicknb:=1了
     
    只有bitbtn1显示;
    下面的2,3...else 判断根本不会成立的
      

  3.   

      private
        clicknb:Integer;
        { Private declarations }procedure TForm1.Button1Click(Sender: TObject);
    var
       Btn:Tbitbtn;
    begin  case clicknb of
        1..3:begin
             Btn:=Tbitbtn(self.FindComponent('bitbtn'+IntTostr(clicknb)));
             Btn.Caption:=edit1.Text;
             Btn.Show; {可用Btn.Visible:=True; }
             v:=edit1.Text;  {V是啥东西}
             edit1.Text:='';
             edit1.SetFocus;
             if clicknb>3 then
               clicknb:=1
              else
               Inc(clicknb);
             end;
        end;end;procedure TForm1.FormCreate(Sender: TObject);
    begin
        clicknb:=1;
    end;