フィールドレベルの検証があるときにモーダルフォームのキャンセルを許可する最善の方法は何ですか?フィールドレベルの検証がある場合にモーダルフォームのキャンセルを許可する最善の方法は何ですか?
私は、モーダルで示されたDelphiフォームを持っています。その中にはTComboBoxes、TEdits、OkとCancelボタンがあります。これらのフィールドには、データが有効であることを確認するためのOnExitメソッドがあります。しかし、フィールドを検証せずにフォームを閉じることができるようにするには、[キャンセル]ボタンをクリックしてください。キャンセルボタンがクリックされた後、フィールドのOnExitが呼び出され、フォームを閉じるボタンのOnClickの前に検証が実行されます。このタイミングは、ユーザが放棄したいデータを修正するために望ましくない。ありがとう。
妥当性検査は、間違ったデータに関する何かを叫び声を出しているメッセージダイアログであるとは限りません。それは、例えば、赤色の入力フィールドテキスト、フィールドの横にある何らかの種類の感嘆符マークアイコン、フィールドから飛び出す警告泡。すべての場合において、ユーザーが記録を保存するのを妨げるでしょう。 – TLama
TLama - データが訂正されるまでOnExitイベントがユーザーをロックしない限り、あなたは正しいでしょう。 – user1595471
私は@ user1595471で提案されているように全体の問題を回避する考えが好きで、これを可能にするためにエラーチェックフレームワークを変更するか、少なくともTLamaのようにユーザーにエラーがどのように表示されるかを変更することを提案します。しかし、これが容認できないと思われるなら、私は他の選択肢を探すでしょう。私の最初の考えは、ユーザー定義のメッセージを自分自身に渡して、フィールドのチェックを要求しています。私は、これはキャンセルボタンのイベントが発生し、ユーザー定義のメッセージが処理される前にフォームを閉じることができると信じています。入力に感謝します。 – user1627960