如何识别按键上的unicode键?

use*_*105 4 delphi unicode delphi-2009

我的应用程序使用unicode字符,我有几个文本字段,我想限制用户输入特殊字符,如:'";

begin
    if not (Key in ['a'..'z','A'..'Z',' ','0'..'9',#13,#8]) then
        Key := #0;
    if Key = #13 then
        bOk.Click;
end;
Run Code Online (Sandbox Code Playgroud)

所以在这一点上它允许用户添加空格并使用退格键来擦除,当然还有输入密钥来确认.

我想要输入的unicode字符很少.ą,č,ė,į,š,ų,ū,ž和他们的大写替代品,但只是将它们添加到集合中......

Key in ['a'..'z','A'..'Z',' ','0'..'9',#13,#8,'?'..'ž','?'..'Ž']
Run Code Online (Sandbox Code Playgroud)

...什么都不做,我仍然不能在文本字段中写这些符号.

我想知道,如何解决这个问题.有没有办法判断按下的键是否是我正在寻找的unicode字符?

谢谢

utk*_*tas 7

如果您使用的是D2009或更高版本,则会有一个名为Character的单元,其中包含IsLetterOrDigit,IsLetter等功能,它们都可以根据您的需要进行处理.