Форма должна иметь нормальный стиль (normal style), необходимо лишь
переписать процедуру CreateParams:
procedure TFloatingToolbar.CreateParams( var Params: TCreateParams );
begininherited CreateParams( Params );
with Params dobegin
Style := Style or ws_Overlapped;
WndParent := MainForm.Handle;
end;
end;
Here's the translation of the text into Russian:
Код, который я предоставил, - это процедура Delphi, созданная для параметров формы в Windows-приложении. Метод CreateParams используется для инициализации параметров создания формы, которые затем передаются операционной системе при создании формы.
В этом конкретном случае процедура является частью класса формы, называемого TFloatingToolbar. Эта форма предназначена для FLOATING над другими окнами в приложении.
Рассмотрим, что код делает:
Строка inherited CreateParams(Params); вызывает реализацию родительского класса метода CreateParams, которая инициализирует некоторые базовые параметры.
Блок with Params do модифицирует параметры создания формы, включая два конкретных настройки:
Style := Style or ws_Overlapped;: Это устанавливает стиль окна в виде флага ws_Overlapped, который позволяет форме быть перекрываемой другими окнами.
WndParent := MainForm.Handle;: Это устанавливает родительское окно для формы в виде handle основной формы (MainForm.Handle). Это, вероятно, сделано для обеспечения того, что FLOATING-toolbar будет отображаться над основной формой.
Результатующие параметры создания формы затем используются при создании формы, что позволяет ей отображаться как FLOATING-toolbar над другими окнами в приложении.
Альтернативное решение, если вы хотите создать FLOATING-toolbar с более нормальным стилем, заключается в удалении флага ws_Overlapped и установке параметра Style в something like ws_CHILD | ws_TABSTOP. Это позволит форме быть обработанной как дочернее окно родительского окна и поведаться более как стандартная панель инструментов. Однако, это может потребовать дополнительных настроек внешнего вида и поведения формы.
В статье описывается реализация постоянной формы сверху приложения, которая должна иметь нормальный стиль и быть родительским элементом основного окна.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS