Windows 98 時代以降、一部のダイアログで Z オーダーが失われ、以前の形式に戻ることが何度もありました。
例えば:
Dialog1.ShowModal;
Dialog1.OnClickButton() : ShowMessage('anything');
MessageBox が表示されると、フォーカスがなく、Dialog1 の下に移動することがあります。ユーザーはそれについて混乱しています。ただし、Alt+Tab を使用して別のアプリに移動して戻ると、フォーカスが MessageBox に戻り、それがフォアグラウンド ウィンドウになります。
これは、ShowMessage、MessageBox、通常のフォーム、および QuickReport フォームで経験しています。
誰もこれについて知っていますか?Windowsのバグですか?どうすればそれを防ぐことができますか? これをどう捉えるか?
助けてくれてありがとう: dd
Win98 以降とは本当に言ったので、すべての OS (Win7 も) がこの問題の影響を受けます。Delphi 6 Prof を使用したため、プロパティはデフォルト フォームでは機能しません。
メッセージ ダイアログは MessageBox + MB_APPLMODAL で制御できると誰かが言っていました。これは朗報ですが、多くの古いフォームやコンポーネント、サード パーティ ツールがあります。
そのため、フォームを差し替えてまったく新しい申請書を作成するのは大変な作業です。
しかし、これをやってみます。
答えは、これはアプリケーションの問題と Windows の問題の半分だということだと思います。Windows がこれを処理する場合と処理しない場合がある場合、それは Windows のバグのようです。しかし、適切なモーダル ウィンドウの作成を強制できる場合、それはプログラミングのバグです。
誰かが WS_POPUP フラグの意味を説明できますか? それは何らかの副作用がありますか、それともありませんか?
ありがとう: dd