我想在键盘按下回车键的时候不仅完成某个按钮Button的同样动作,而且按下回车键的同时该按钮Button也有被按下的效果,如何处理呢?
解决方案 »
- 新手的困惑:一个弱智问题,进来讨论者都有分
- 在DBGrid中,如何判断焦点移动到了另一行?
- ehlib问题
- 100分求Update 3 of the Delphi for .NET preview下载
- [讨论]使用ACTION比CLOSE安全?
- 怎样把数据库备份和恢复!谢谢!!
- 请问哪里有Delphi6的InstallShield可以下载用呀?
- 用什么函数可以调出WINDOWS的字体设置对话框?
- delphi DbGrid使固定列不随滚动条滚动而滚动
- 关于corba的问题!!!!!
- 吐血经验!!!delphi用BDE+ODBC的体制开发oralce先天性的缺陷!
- 用QuickReport打印一张图片,希望按照用户设定纸的大小,动态调整图片比例,适应纸的大小。有好办法吗?
keypress或者keydown事件里实现
判断key=#13(要注意keypress和keydown的key类型是不同的啊)
然后作引用action
Form1.OnKeyPress(...);
begin
if Key=#13 then
Button1Click(Sender);
end;
我要实现的是在按下回车键时button也有视觉上的被按下的效果.
~~~我觉的是不可能的..
用一个panel上放一个Label,panel的属性中可以设置为象按下一样的,
我就是用的这样的方法处理的,很不错的。
或者在程序中加入代码
begin
if key=#13 then
button1.click;
end;
begin
if key=#13 then
button1.perform(cn_click,0,0);
end;
把主窗体的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;
xzgyb(老达摩) 真是一旷世奇才....成功.......
模拟鼠标按键
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;
按下后要执行的功能,我用了FormKeyDown和FormKeyUp两个事件处理,设置两个speedbutton按钮,而且他们的groupindex同为1,其中一个按钮为不可见.这样通过改变按钮的down的值来显示回车键按下及松开时按钮的同步效果.(好像按钮也被按下了似的).
欢迎大家提供更好的方法!