我正在编写一个应用程序,用户将在其中将不同语言的数据输入到 TcxGrid 中。为了便于输入不在普通键盘上的键(á 或 ¿),我决定为用户添加添加按钮的功能,当按下该按钮时,会将字符直接发送到网格。
基本上按钮被按下,按钮上的标题是要发送到网格的字符。现在我这样做的唯一方法是获取活动网格单元格,在那里复制文本,附加要添加的字符,然后将网格值设置为新字符串。这似乎并不理想。
关于干净的方式来做到这一点的任何想法?
我正在编写一个应用程序,用户将在其中将不同语言的数据输入到 TcxGrid 中。为了便于输入不在普通键盘上的键(á 或 ¿),我决定为用户添加添加按钮的功能,当按下该按钮时,会将字符直接发送到网格。
基本上按钮被按下,按钮上的标题是要发送到网格的字符。现在我这样做的唯一方法是获取活动网格单元格,在那里复制文本,附加要添加的字符,然后将网格值设置为新字符串。这似乎并不理想。
关于干净的方式来做到这一点的任何想法?
如果您可以获取控件的句柄,您可以向控件发布指示正在输入的消息。
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 消息。