この質問はExperts-Exchangeにあります。 コントロールのOnExitが別のウィンドウを表示するときに新しいコントロールのmouseupイベントを食べる
問題は簡単に複製することができ、別のウィンドウを表示するとき
コントロールのフォーカス喪失時には、新しい制御のためのmouseUpイベントを食べます。
場所に3つのテジットがあります。 edit1のonexitイベントでshowmessage( 'exit')を書きます。プログラムを実行します。edit1フォーカスを与えます。 edit3フォーカスをクリックして、showmessageにokをクリックします.edit3の何かをクリックするまで表示します。マウスのどこか フォームに! edit2フォーカスを与え、次にedit3フォーカスを与えるためにマウスに使用 edit3であなたが望むものをどのように入力することができるか観察する!
これまでのところ、私はこの問題は、古いコントロールがどのような種類のウィンドウを表示 イベントをフォーカス喪失時ときEDIT3 はのmouseup、メッセージを受信していないという事実にある、私は同様にそれを試してみたことが確立されました同じ結果のonExitイベントで私自身の フォームを示しています。実際には、Windowsは、あなたがshowmessage
に[OK]をクリックしたマウスを 後EDIT3の上に押されているという印象の下に である私は、それは、Delphi/Windowsのバグだと思うが、それを回避する方法?
:私は似何かをしようとしています
適用いつも私は私がEDIT3のOnMouseDownイベントの(プロセスで呼び出さ 以来の最後のイベント)にWM_LBUTTONUPを強制することができます知っている それは退屈ではなく、より です
onexitイベントでは、警告ボックスを表示してから、通常どおりに進んでください。ユーザーが実際にクリックした場所にフォーカスを移動します。 これは可能ですか?
OnExitイベントハンドラでモーダル警告を表示しないでください。警告を視覚資料に限定する。モーダル警告を表示する必要がある場合は、フォームを送信するときに(OKをクリックして)行います。 – NGLN