Что сработало для меня в прошлом, когда я боролся с формами «остаться на вершине»:
Form := TMyForm.Create(Self);
Application.NormalizeTopMosts;
SetWindowPos(Form.Handle, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOACTIVATE + SWP_NOMOVE + SWP_NOSIZE);
Form.Show;
Попробуйте вместо звонка ShowWindow
.Это остается поверх всех окон (вы действительно этого хотите?).Кроме того, он выглядит как хакерский, потому что он пропускает вызов RestoreTopMosts
, о котором в документации говорится, что мы должны вызывать (так что это повлияет на другие окна в вашем приложении).Так что может быть лучшее решение.