許容される入力を制限する方法日本デルファイのTEditの文字は?許容入力を制限する方法日本デルファイのTEdit上の文字?
日本語の文字のみを入力する必要があるので、デルファイXE8にはTEdit
が1つあります。どうすればいいですか?
許容される入力を制限する方法日本デルファイのTEditの文字は?許容入力を制限する方法日本デルファイのTEdit上の文字?
日本語の文字のみを入力する必要があるので、デルファイXE8にはTEdit
が1つあります。どうすればいいですか?
LU RDは前述のように中国語/日本語文字を区別することは困難ですが、定義されたとおりの日本語の範囲をテストする場合は、次の機能を使用できます。 Unicode文字を入力するには、ソースファイルのフォーマットをUnicodeに変更する必要があります。エディタを右クリックし、File Formatオプションを選択すると、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;
第2の質問は、VCLまたはFMXのどちらを使用しているかによって異なります。 VCLでは、あなたが
procedure TMainForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not IsStringJapanese(Key) then
begin
Key := #0;
end;
end;
を以下のようKeyPressイベントを処理することで、特定の文字を入力するのを防ぐことができますが、それは編集するコピー/貼り付け文字列を防ぐことはできません、あなたはそれを使用する前にテキストを検証する必要があります。 [文字列の日本語/中国語の文字のテスト] FMXで
あなたがイベント
procedure TForm1.Edit2Validating(Sender: TObject; var Text: string);
begin
if not IsStringJapanese(Text) then
begin
raise Exception.Create('Text not japanese');
end;
end;
ありがとうございました! –
テスト個々の文字をOnValidating使用することができ、日本語と中国語の文字を区別することは困難である、(のhttp:// stackoverflowの.com/q/786637/576719)。 –
私が得意でないのは、あなたがこれをしたい理由です。 –