FMX.Edit.TCustomEdit.OnValidate
Delphi
property OnValidate: TValidateTextEvent read GetOnValidate write SetOnValidate;
C++
__property Fmx::Text::TValidateTextEvent OnValidate = {read=GetOnValidate, write=SetOnValidate};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
event | public | FMX.Edit.pas FMX.Edit.hpp |
FMX.Edit | TCustomEdit |
説明
ユーザーが〔Enter〕キーを押すか、コントロールからフォーカスが離れた場合に、発生します。
OnValidate イベント ハンドラを記述すると、テキストを実際に変更する前に、ユーザーが編集コントロールに入力した編集内容を検証することができます。OnValidate イベント ハンドラは渡されたテキストを検証することができ、もしそれが許容外のものであった場合、エラーまたは警告のメッセージを返すことができます。
サンプル コード
分かりやすくなるよう、次のような場合を考えてみましょう。 アプリケーションで、mycompany.com ドメインからのユーザー E メール アドレス(例、[email protected])を入力するための、テキスト編集ボックスを用意します。ユーザーが、"mydomain.com" サブ文字列で終わらないテキストを入力した場合、アプリケーションは編集コントロールにエラー メッセージを表示します。
このシナリオでは、次の OnValidate イベント ハンドラを実装することができます。
Delphi:
procedure TForm1.Edit1Validate(Sender: TObject; var Text: string);
begin
if not EndsText('mycompany.com', Text) then
Text := 'Invalid email!'
end;
C++Builder:
void __fastcall TForm1::Edit1Validate(TObject *Sender, UnicodeString &Text)
{
if (!EndsText("mycompany.com", Text)) { Text = "Invalid email!";
}
}
メモ: これらのコード スニペットでは、System.StrUtils.EndsText ルーチンを使用します。