我想在键盘按下回车键的时候不仅完成某个按钮Button的同样动作,而且按下回车键的同时该按钮Button也有被按下的效果,如何处理呢?

解决方案 »

  1.   

    获得button的handle,然后sendmessage bn_click
      

  2.   

    把动作写成action
    keypress或者keydown事件里实现
    判断key=#13(要注意keypress和keydown的key类型是不同的啊)
    然后作引用action
      

  3.   

    设置Form1的KeyPreview为True。然后在
    Form1.OnKeyPress(...);
    begin
      if Key=#13 then
        Button1Click(Sender);
    end;
      

  4.   

    to: hch_45(んこん) 
      我要实现的是在按下回车键时button也有视觉上的被按下的效果.
      

  5.   

    那你就用speedbutton 把flat设为true 就搞定,
      

  6.   

    在按下回车键时button也有视觉上的被按下的效果.
    ~~~我觉的是不可能的..
      

  7.   

    你不要用button
    用一个panel上放一个Label,panel的属性中可以设置为象按下一样的,
    我就是用的这样的方法处理的,很不错的。
      

  8.   

    直接在属性编辑器中的default项中设置为true就可以了
    或者在程序中加入代码
    begin 
    if key=#13 then 
    button1.click;
    end;
      

  9.   

    procedure TForm1.Button1onkeypress(....);
    begin
     if key=#13 then
      button1.perform(cn_click,0,0);
    end;
      

  10.   

    那就这样把
    把主窗体的KeyPreview设为True
    然后
    procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if Key = VK_RETURN then
        SendMessage(Button1.Handle, BM_SETSTATE, 1, 0);
    end;procedure TMainForm.FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var
      pt: TPoint;
    begin
      if Key = VK_RETURN then
      begin
        SendMessage(Button1.Handle, BM_SETSTATE, 0, 0);
        Button1.Click;
      end;
      

  11.   

    wo kao
    xzgyb(老达摩) 真是一旷世奇才....成功.......
      

  12.   

    提供一个麻烦的思路,应该可以判断key=#13 然后取得button在屏幕上的位置,然后用mouse_event(MOUSEEVENTF_ABSOLUTE+MOUSEEVENTF_LEFTDOWN, p.x, p.y, 0, 0);
    模拟鼠标按键
      

  13.   

    SpeedButton本身就有这种功能啊把GroupIndex属性设为非0就可以了procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key= VK_RETURN then
        begin
          SpeedButton1.Down:= true;
          SpeedButton1Click(nil);
        end;
    end;procedure TForm1.SpeedButton1Click(Sender: TObject);
    begin
      showmessage('ok');
    end;
      

  14.   

    经过大侠们提示,我还是找到了解决的方法.再说的是:我要的是按钮被按下的视觉效果,不是
    按下后要执行的功能,我用了FormKeyDown和FormKeyUp两个事件处理,设置两个speedbutton按钮,而且他们的groupindex同为1,其中一个按钮为不可见.这样通过改变按钮的down的值来显示回车键按下及松开时按钮的同步效果.(好像按钮也被按下了似的).
      欢迎大家提供更好的方法!