如何让button响应键盘中的回车键?(100分)

  • 主题发起人 主题发起人 delphie
  • 开始时间 开始时间
D

delphie

Unregistered / Unconfirmed
GUEST, unregistred user!
我想让自己的Button按钮相应回车键,那么我应该在button按钮中添加什么代码?
如果要让edit相应回车按钮,又应该怎么做呢?
 
在Button的OnKeyDown事件里写代码。
if Key = 13 then
begin
end;
 
在edit 的keydown事件中写
if Key = 13 then
begin
end;
 
不知道怎么回事,好像没有用啊
 
将buttom的ModalResult设置为mrOk
 
form keypreview:true
formonkeydown中写入上面众人所述代码。
如果是按钮的话,default :true也行
 
你那是什么BUTTON啊?

SpeedButton是不接收键盘事件的
其它的Button在获得焦点的事件本身就能响应回车
 
procedure TForm1.FormCreate(Sender: TObject);
begin

keypreview := true; //可以接收键盘操作 先要在软件启动的时候这么做
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
(或你要的Button1KeyPress)
begin
if key = #27 then
begin
Button5.Click;//你要响应的 (这句换成你要的)
end;
end;
 
BUTTON的DEFAULT属性设为TRUE,就可以了。不用写代码
 
button 不用设置,只要button 获得焦点,就可以了
edit
procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
showmessage('PLMM');
end;
end;
 
上面说的都对的。
 
在button1 的keydown事件中写
if Key = #13 then
begin
ShowMessage('你单击了我:)');
end;
 
上分上分!
button回车是
procedure TForm1.Button1Click(Sender: TObject);
var msg:Tmsg;
begin
getmessage( msg,self.Handle,0,0);
if Msg.message = WM_KEYUP then
if (msg.wParam)=VK_RETURN then
showmessage('click');
end;
edit的回车是
在edit 的keydown事件中写
if Key = 13 then
begin
end;
 
edit的回车是
在edit 的onkeypress事件里写
if Key = #13 then
begin
语句
end;

button回车是
先把button的default属性设置为true,然后写下如下代码:
procedure TForm1.Button1Click(Sender: TObject);
var msg:Tmsg;
begin
getmessage( msg,self.Handle,0,0);
if Msg.message = WM_KEYUP then
if (msg.wParam)=VK_RETURN then
showmessage('click');
end;
 
必须获得焦点再有IF KEY=13 那才有用吗
 
你要设计好到底是在那里用:
1.KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
key=13
2.KeyPress(Sender: TObject; var Key: Char);
key=#13
这两个参数不一样的
 
以上的方法我都试过了,可是除了将button的default属性改为true之外,其它的方法都没有用,而且,这个方法也有不足之处:当我按别的按钮的时候,这个按钮也会有一个往下凹的闪动动作,让人看起来很不爽。还有没有别的好办法,继续讨论
 
你要设计好到底是在那里用:
1.KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
key=13
2.KeyPress(Sender: TObject; var Key: Char);
key=#13
这两个参数不一样的

[red]procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Button1Click(Sender);
end;[/red].[blue]上面的是可以的,你要把KeyPress事件当Button1Click(Sender);[/blue]

还有其他的方法可能是自己写函数了
 
上面的都对,你还可以用消息循环
 
后退
顶部