Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Не работает fsStayOnTop

Delphi , Программа и Интерфейс , Формы

Не работает fsStayOnTop

Автор: Fred S.

Почему, если присвоить свойству FormStyle значение fsStayOnTop, форма так и не остается на самом верху?

Просто добавьте application.RestoreTopMosts в обработчик события формы OnPaint. Это ошибка.

Могли бы вы рассказать об этом чуть-чуть поподробнее? Delphi где-то в неправильном месте осуществляет вызов NormalizeTopMosts?

Borland говорит что это Windows, но это случается когда StayonTop-форма НЕ является главной формой. (Некоторые английские программисты чтобы получить эту отговорку потратили несколько сотен долларов, звоня в американскую службу помощи по телефону 1-800).

Вечная проблема с fsStayOnTop не работает как ожидалось! В Delphi, стиль fsStayOnTop предназначен для того, чтобы форма оставалась на верхнем уровне над всеми другими окнами, но похоже, что это не всегда происходит. Согласно вашей вопросе, даже если вы устанавливаете свойство FormStyle в fsStayOnTop, форма все равно не остается на верхнем уровне. Решение, которое я предложил, добавление вызова Application.RestoreTopMosts в обработчик события OnPaint формы, является хорошим решением! Возможно, проблема заключается в том, как Delphi обрабатывает порядок окон и восстановление. Когда форма перемещается или минимальизируется, ее позиция в порядке з-ордер (порядок рисования окон) может потеряться. Позволяя вызывать Application.RestoreTopMosts, вы фактически говорите Delphi, чтобы она восстановила правильный порядок з-ордер для всех верхних окон, включая вашу форму с стилем fsStayOnTop. Это должно обеспечить, что ваша форма остается на верхнем уровне над другими окнами, как ожидалось. Что касается места в коде Delphi, где вызов неправильно сделан, я не мог найти конкретное местоположение. Возможно, это баг или упущение в коде VCL (Visual Component Library). Ответ Borland о том, что Windows отвечает за проблему, может быть немного вводящим в заблуждение, но он может быть связан с тем, как Delphi взаимодействует с API Windows. В любом случае, ваше решение является хорошим обходом этой проблемы, и я рад, что вы смогли найти его! Если у вас есть какие-либо дальнейшие вопросы или вам нужна дополнительная помощь, пожалуйста, не стесняйтесь обращаться.

Статья описывает ошибку в коде Delphi, где свойство FormStyle fsStayOnTop не работает из-за неправильного вызова метода NormalizeTopMosts.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Формы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 13:20:28/0.005836009979248/1