gpt4 book ai didi

delphi - 如何在Delphi中限制TEdit上可接受的输入日语字符?

转载 作者:行者123 更新时间:2023-12-01 14:17:26 24 4
gpt4 key购买 nike

如何在Delphi中限制TEdit上可接受的输入日语字符?

我在Delphi XE8中只有一个TEdit,只需要输入日语字符,那么该怎么办?

最佳答案

正如LU RD提到的,很难区分中文/日语字符,但是如果可以测试定义为here的日语字符范围,则可以使用以下功能。您需要将源文件格式更改为Unicode才能输入Unicode字符,可以通过右键单击编辑器并选择“文件格式”选项来实现。

function IsStringJapanese(const S: string): boolean;
var
C: Char;
begin
Result := True;
for C in S do
begin
Result :=
// kanji
((C >= '一') and (C <= '龿'))
// hiragana
or ((C >= 'ぁ') and (C <= 'ゟ'))
// katakana
or ((C >= '゠') and (C <= 'ヿ'));
if not Result then
begin
Break;
end;
end;
end;

第二个问题是如何验证TEdit取决于您使用的是VCL还是FMX。在VCL中,您可以通过如下处理KeyPress事件来防止键入某些字符
procedure TMainForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not IsStringJapanese(Key) then
begin
Key := #0;
end;
end;

但它不会阻止将复制/粘贴字符串更改为“编辑”,因此您需要先验证文本,然后再使用它。

在FMX中,您可以使用OnValidating事件
procedure TForm1.Edit2Validating(Sender: TObject; var Text: string);
begin
if not IsStringJapanese(Text) then
begin
raise Exception.Create('Text not japanese');
end;
end;

关于delphi - 如何在Delphi中限制TEdit上可接受的输入日语字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41734437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com