Делфи-код, который настраивает поведение второстепенной формы (инстанции класса TForm) в панели задач. Цель - сделать ее похожей на окно приложения, а не на обычную форму.
Пусть разберемся, что происходит:
В разделе интерфейса определена класс TForm с защищенным методом CreateParams. Метод переопределен (отмечен ключевым словом override) для предоставления кастомных параметров создания формы.
В разделе реализации метод CreateParams реализован. Он вызывает версию наследника метода CreateParams с помощью ключевого слова inherited, которое обеспечивает сохранение любого 기본ного поведения.
Свойство Params.ExStyle устанавливается с использованием оператора побитового OR (or) для комбинации существующего значения с стилем WS_Ex_APPWINDOW. Это делает форму похожей на окно приложения, позволяя ее минизировать, максимизировать и восстановить как обычное приложение.
Свойство Params.WndParent устанавливается в GetDesktopWindow, которое возвращает handle для десктопного окна. Это задает родительское окно формы на десктоп, эффективно делая ее верхним уровнем окна.
Таким образом, данный код обеспечивает, чтобы второстепенная форма отображалась в панели задач как иконка приложения, а не как обычное окно формы.
Альтернативное решение:
Вместо модификации метода CreateParams можно использовать свойство FormStyle, чтобы достичь аналогичного результата. Например:
procedure TForm2.Create;
begin
inherited Create;
FormStyle := fsMDIApp; // или fsSingle, если вы хотите, чтобы она была standalone-окном
end;
Это устанавливает стиль формы в fsMDIApp, что делает форму похожей на окно приложения. Однако помните, что данный подход может иметь различные эффекты на поведение и внешний вид формы по сравнению с модификацией CreateParams.
В статье описывается способ сворачивания вторичной формы на панель задачи в Delphi, демонстрируя пример кода для реализации этой функциональности.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS