将密钥发送到组件

时间:2013-05-02 20:43:06

标签: delphi

我正在编写一个应用程序,用户将使用不同语言将数据输入到TcxGrid中。为了便于输入不在普通键盘上的键(á或¿),我决定添加一个用户添加按钮的功能,按下该按钮会直接将字符发送到网格。

基本上按下按钮,按钮上的标题是发送到网格的字符。现在,我这样做的唯一方法是获取活动网格单元格,在那里复制文本,附加要添加的字符,然后将网格值设置为新字符串。这似乎并不理想。

有关干净方法的任何想法吗?

1 个答案:

答案 0 :(得分:4)

如果您可以获取控件的句柄,则可以向控件发送指示键入内容的消息。

PostMessage(Edit1.Handle, WM_CHAR, Ord('A'), 0);

我确信有一种更明智的方式可以做到这一点,但我让你的角色使用“角色地图”:

const
  testchar1 = 'Á';
  testchar2 = '¿';
begin
  PostMessage(Edit1.Handle, WM_CHAR, Ord(testchar1), 0);
  PostMessage(Edit1.Handle, WM_CHAR, Ord(testchar2), 0);
end;

如果您需要虚拟扫描码,请使用WM_KEYDOWN和WM_KEYUP消息。