现要用个Button的OnClick事件来代替键盘操作: Ctrl+Enter(100分)

  • 主题发起人 主题发起人 redjyc
  • 开始时间 开始时间
R

redjyc

Unregistered / Unconfirmed
GUEST, unregistred user!

现要用个Button的OnClick事件来代替键盘操作: Ctrl+Enter

就是说单击Button,就触发键盘操作Ctrl+Enter才触发的事件.

问题是: 在那个方法里做?

怎么做?
 
在keydown里判断,然后在调用他的click事件,不是可以马?
 
sluger:
你好!

我的意思是用个Button的OnClick事件来代替键盘操作: Ctrl+Enter
不是说先按了Ctrl+Enter再在KeyDown中来判断按了那个键

具体来说是这样的:

我现用一个第三方控件
它有一个功能是用Ctrl+Enter来操作的(当然它的功能是封装的)
现在我希望的是:
用一个Button的OnClick事件来执行这个功能,而不要用Ctrl+Enter键

所以关键的问题是:

单击Button,就触发键盘操作Ctrl+Enter触发的事件

 
向那个程序发送Ctrl+Enter不就行了?
 
doxpix:
Good Night!

我不明白你的意思
可否说得透彻点:)
怎么向那个程序发送Ctrl+Enter?

问题的关键是:
用编程来做到和用手按Ctrl+Enter相当的功能
 
你那个Ctrl+Enter是你的程序里的,那就简单。
在你的Button1.Onclick里触发Ctrl+Enter事件不就完了。

如果是别的程序,要向它发送Ctrl+Enter键盘消息。D5光盘上有个
sndkey32单元,里面有个函数SendKeys,发送Ctrl+Enter为:Sendkeys('^{Enter}')。
试验成功,源码如下:

》》用编程来做到和用手按Ctrl+Enter相当的功能
Of Course!

*************************************************************************
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses
sndkey32;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
appactivate('发送消息'); //OICQ的小窗口。
sendkeys('^{Enter}',true);
end;

end.
 
应该搞定了吧。
 
dopix:
u r right.Thank u.

另一个人对我说用SendMessage来发消息,也可以的.
 
doxpix:
u r right.Thank u.

另一个人对我说用SendMessage来发消息,也可以的.

但他没说清就不见了

你能讲一下吗?


 
SendMessage模拟组合键好象不行。
单单一个Ctrl或Enter是可以的。
 
多人接受答案了。
 
后退
顶部