これは、表示された後に非表示になったが解放されていない子フォームを持つ Delphi アプリケーションに関係しています。ユーザーがアプリケーションの (Windows 10) タスクバーの「ミニビュー」にカーソルを合わせると、非表示のフォームが表示されます (ホバー中に)。ユーザーがミニビューをクリックしてフォーカスを変更すると、非表示になります。アプリケーション。これを回避する方法はありますか?
再作成するには:
- 新しい VCL フォーム アプリケーションを作成します。
- プロジェクトに新しいフォームを追加し、自動作成に設定します。
- 表示するボタンを追加して、フォームを非表示にする (または ShowModal で開く)
- アプリケーションを実行する
- ボタンをクリックして 2 番目のフォームを表示し、それを閉じます。
- アプリケーションのタスクバー ボタンにカーソルを合わせると、メイン ウィンドウのミニビューが表示されます。
- ミニビューの上にマウスを置き、非表示のウィンドウがメイン フォームの上に表示されることを確認します。
アプリケーションを最小化して復元すると、次回フォームが表示されるまで影響が「修正」されることに注意してください。おそらく、それは何が原因なのか、または回避策の手がかりになるのでしょうか? これは実際の問題を引き起こしていないように見えるため、大きな問題ではありませんが、プロフェッショナルではないように見えます.
要求に応じてコードを追加します (ただし、あまり興味深いものではありません)。
program Project1;
uses
Vcl.Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
// Only code that was added to TForm1:
procedure TForm1.Button1Click(Sender: TObject);
begin
// Show and then hide the form or use ShowModal and close it before testing the hover.
Form2.Show;
Form2.Hide;
// Form2.ShowModal;
end;
更新: Delphi IDE だけを使用して問題を表示する方法。
- Delphi を実行する
- 任意のコード ファイルを開き、文字列を検索してから、[一致する検索が見つかりませんでした] ダイアログが表示されるまで F3 を使用します。
- 手順 2 の「検索結果が見つかりませんでした」ウィンドウを閉じます。
- マウスを Delphi タスクバー ボタンの上に置き、ミニ プレビューに移動します。
- Delphi のメイン ウィンドウの上に「Search Match Not Found」ウィンドウが表示されます。ベルリンと東京(10.2.1)でこれを確認しました