form上有3个button
button1按下后,再按button3,则showmessage('你按下了button1');
button2按下后,再按button3,则showmessage('你按下了button2');
如果都没有按下,则按button3,没有反应我想是不是应该要捕捉消息,不过不知道怎么写代码请教

解决方案 »

  1.   

    定义个boolean变量,在button1.click里赋false,button2.click里赋true;在button3.click判断它好了:)
      

  2.   

    在Private下声明两个Char型的变量 CBtn,用于表示Button1/2是否被按下,在Form的OnCreate事件中为其赋初值:
    CBtn:='0';//用0表示没有按下按钮在Button1的OnClick事件中写:
    CBtn:='1';//用1表示按钮1被按下了在Button2的OnClick事件中写:
    CBtn:='2';//用2表示按钮2按下了在Button3的OnClick事件中写:
    if CBtn=='1' then
       ShowMessage('按钮1被按下了!')
    else
      if CBtn='2' then
        ShowMessage('按钮2被按下了!')
       else
         if CBtn='0' then
            ShowMessage('你还没有按下过1或2按钮!');
      

  3.   

    不好意思:
    上面应该是 if CBtn='1' then
      

  4.   

    1 3个button的onclick事件使用一个,在属性编辑窗口-事件-onclick中选择
    procudre Tform1.OnbuttonClick(sender:tobject);
    2 用sender
    procudre Tform1.OnbuttonClick(sender:tobject);
    begin
    showmessage((sender as button).Caption);
    end;
      

  5.   

    sorry理解错
    你可以直接用tag记录
    在Button1的OnClick事件中写:
    button1.tag:=1;
    在Button2的OnClick事件中写:
    button2.tag:=1;
    在Button3的OnClick事件中写:
    if button1.tag==1 then
       ShowMessage('按钮1被按下了!')
    else
      if button2.tag=1 then
        ShowMessage('按钮2被按下了!')
       else
            ShowMessage('你还没有按下过1或2按钮!');
      

  6.   

    定义一个Tbutton变量,在按钮单击事件里把被单击的按钮赋值给定义的这个变量就行了,如:
    public
    clickedbutton:Tbutton;
    end;
    procedure button1clicked......
    begin
    clickedbutton:=button1;
    end;
    procedure button2clicked......
    begin
    clickedbutton:=button2;
    end;
      

  7.   

    其实你所要做的就是要有FlatButton的Down属性功能,可以另外定义一个变量存储被按下的按钮