0

私の質問のタイトルは少し誤解を招く可能性があります。もしそうなら、私はお詫び申し上げます。どのようにタイトルを付けるのが良いかわかりません。

Delphi 7 フォーム (CLX で構築) に住所検証用のジオコーディングを追加しようとしていますが、少し問題が発生しています。詳細は次のとおりです。

  • ユーザーは、住所フィールドに住所、都市、州、郵便番号の順にデータを入力する必要があります。
  • 郵便番号フィールドを離れるとすぐに、住所検証が呼び出されます。(ユーザー指定)
  • アドレスが無効であると返された場合、ユーザーには、指定されたアドレスを修正するかどうかを尋ねる yes/no の選択が与えられます。(ユーザー仕様)
  • はいの場合は、ジオコーディング API からの結果に示されているように、フォーカスを適切なフィールド (住所、都市、州、郵便番号) にリセットします。それ以外の場合は、次のフィールドに進みます。

はい/いいえダイアログを終了した直後、マウスの動作が少しおかしいようです。ワンクリックで、前のフォーム (おそらくこの時点で閉じられている) が代わりにフォーカスを受け取っているように見えます。そのフォームのオンクリック イベントは、このフォームの値の一部を変更できます (データのプリロード)。これらの値は、マウスをクリックすると変更されます。オンクリック イベントを無効にするということは、新しいフォーム上で何もしないマウス クリックが 1 回あるだけで、クリックの動作が期待どおりに戻ることを意味します。

これを調査しているときに、オンラインでいくつかのことを見てきました。これらからのコンセンサスは、私の問題は、郵便番号フィールドの OnExit イベント内のメッセージ ダイアログの結合であるということです。(私が正しく読んだことを理解していれば、MouseUp イベントは 2 つのウィンドウの間で失われているようです。)

独自の方法があれば、手動でボタンを押して検証を実行することもできます。エンド ユーザーの制約により、その選択肢がない状況に陥る場合、この状況を処理する最善の方法は何ですか?

4

1 に答える 1