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

Как спрятать окна MDI Child

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

Как спрятать окна MDI Child


procedure TCustomForm.VisibleChanging;
begin
  if (FormStyle = fsMDIChild) and Visible then
    raise EInvalidOperation.Create(SMDIChildNotVisible);
end;

Хорошая вопроска! Чтобы скрыть окно MDI-ребенка, вы можете использовать метод Hide вместо установки свойства Visible в False. Это потому что когда окно ребёнок скрыто, оно не будет получать никакие сообщения о рисовании или другие события UI.

Когда вы устанавливаете Visible в False, окно все еще присутствует в памяти и может продолжать получать уведомления от системы. Поскольку скрывать окно вместо этого, вы обеспечиваете, что оно будетproperly удалено из UI и его ресурсы будут освобождены.

В вашем коде вы можете изменить обработчик события VisibleChanging следующим образом:

procedure TCustomForm.VisibleChanging;
begin
  if (FormStyle = fsMDIChild) and Visible then
    Hide; // вместо вызова исключения
end;

Таким образом, когда пользователь пытается отобразить окно ребёнка, которое не должно быть видимо (по вашей бизнес-логике), оно просто спрячется без вызова ошибки.

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

Например:

private
  FShouldBeVisible: Boolean;
...
procedure TCustomForm.VisibleChanging;
begin
  if (FormStyle = fsMDIChild) then
    if not FShouldBeVisible then
      Hide; // скрыть окно ребёнка, если оно не должно быть видимо
end;

Используя флаг в этом виде, вы можете отделить видимость окна ребёнка от его свойства Visible и обеспечить больше гибкости в логике вашего приложения.

Процедура VisibleChanging позволяет скрыть окно MDI Child, предотвращая изменение его видимости при помощи проверки типа формы и ее видимости.


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

Получайте свежие новости и обновления по 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:11:47/0.0054628849029541/1