2

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

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

关于干净的方式来做到这一点的任何想法?

4

1 回答 1

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 消息。

于 2013-05-02T21:14:19.313 回答