これが取引です。に設定されたメイン フォームfsNormal
。このメイン フォームは、フローティング ツールバーを備えたフルスクリーンで最大化されています。ツールバーは、スタイルが に設定された通常の形式fsStayOnTop
です。
ほとんどの場合、これは期待どおりに機能します。メインフォームが表示され、ツールバーがその上に浮かびます。
他のアプリとの間で Alt キーを押しながらタブ移動するとき (またはタスクバーの Delphi アプリ アイコンをクリックするとき) に、次のような症状が発生することがあります (これは、再現可能な一連の手順を見つけるためのバグです)。
Alt キーを押しながら Delphi アプリから離れると、一番上のフローティング
fsStayOnTop
フォームが他のアプリの上に表示されたままになります。そのため、Firefox に alt-tab キーを押すと、フローティング メニューも Firefox の上に表示されたままになります。別のアプリから Delphi アプリに Alt-Tab キーを押しても、フローティング メニューは表示されません(メインフォームの背後にある
fsNormal
ため)。
これは既知のバグですか、それとも強制的に機能させるハックはありますか? これは、アプリの複数のコピーが実行されている場合にも最も発生するようです (それらの間で相互作用がなく、独自のウィンドウ "サンドボックス" で実行されている必要があります)。
Delphi がどのウィンドウを一番上に置くべきか混乱して、それらを交換したり、フローティング フォームをすべての上にとどまるモードに変更したりします。
それとも誤解していfsStayOnTop
ますか?フォーム スタイルを設定してfsStayOnTop
、現在のアプリ内の他のすべてのフォームの上にとどまり、他の実行中のアプリ全体のすべてのウィンドウではないと仮定しています。