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

Как убрать заголовок в дочерней форме MDI

Delphi , Программа и Интерфейс , MDI приложения

Как убрать заголовок в дочерней форме MDI

Если в дочерней форме MDI установить BorderStyle в bsNone, то заголовок формы не исчезнет. (Об этом сказано в хелпе). А вот следующий пример решает эту проблему:


type
  ... = class(TForm)
  { other stuff above }
  procedure CreateParams(var Params: TCreateParams); override;
  { other stuff below }
end;

...

procedure tMdiChildForm.CreateParams(var Params: tCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style := Params.Style and (not WS_CAPTION);
end;

Бессмертная борьба с child-formами MDI!

Вы правы, установка параметра BorderStyle в bsNone не completely убирает панель заголовка формы MDI-child. Причина в том, что панель заголовка является частью области заголовка окна, которая не может быть удалена полностью.

Решение, которое вы предложили, - это переопределение метода CreateParams в вашей форме MDI-child и установка параметра Params.Style, чтобы исключить флаг WS_CAPTION, является хорошим подходом.

Вот разбивка того, что делает этот код:

  • Метод CreateParams вызывается Delphi при создании нового экземпляра формы. Он позволяет настроить параметры создания окна.
  • inherited CreateParams(Params); вызывает реализацию родительского класса метода CreateParams, которая настраивает стандартный стиль окна и другие свойства.
  • Параметр Params.Style затем модифицируется, удаляя флаг WS_CAPTION, ответственный за создание панели заголовка. Таким образом, вы эффективно убираете панель заголовка из формы MDI-child.
  • Это решение обеспечивает, что панель заголовка не будет создаваться, даже если родительская форма MDI имеет свою собственную панель заголовка.

Если вам нужно достичь аналогичного результата без переопределения CreateParams, вы также можете попробовать установить параметр BorderStyle в bsToolWindow, что создаст окно без области заголовка и рамки.

Помните, что это решение работает только для child-formов в приложении MDI. Если вам нужно удалить панель заголовка из не-MDI-формы, вам может потребоваться использовать другие подходы, такие как установка параметра BorderStyle в bsNone и настройка внешнего вида формы с помощью других методов.

Убрать заголовок в дочерней форме MDI можно, установив параметр Style для параметров создания формы в WS_CAPTION, а затем отняв его с помощью оператора "and" в методе CreateParams класса TForm.


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

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




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


:: Главная :: MDI приложения ::


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:04:05/0.0052840709686279/1