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

Сворачивает все приложение при сворачивании неглавного окна

Delphi , Программа и Интерфейс , Размеры и Положение



Автор: Vemer
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Сворачивает все приложение при сворачивании неглавного окна.

Обработчик сообщении. При попытке свернуть окно - сворачивает все приложение.
Предназначен для неглавных немодальных окон.

Зависимости: Как у стандартной формы...
Автор:       Vemer, Vemer@mail.ru, Петрозаводск
Copyright:   создано на основе примеров на www.delphimaster.ru
Дата:        17 марта 2004 г.
***************************************************** }

// Пишем в Private формы(неглавной);
procedure WMSysCommand(var message: TWMSysCommand); message WM_SysCommand;
...

// Пишем в тексте программы:
procedure TF_Shop.WMSysCommand(var message: TWMSysCommand);
begin
  if message.CmdType = SC_MINIMIZE then
    Application.Minimize
  else
    inherited;
end;

Привет! Я переведу текст на русский язык:

Код-сниппет является частью приложения Delphi, которое обрабатывает сообщение WM_ SYSCOMMAND, чтобы минизировать основное окно, когда любое не модальное дочернее окно минизируется.

Вот разбивка на секции:

Заголовок и информация о авторе

Код начинается с заголовка, который включает в себя информацию о авторе, авторских правах и дате. Он также упоминает, что это пример был вдохновлен DelphiMaster.ru.

Приватный процедура формы

Процедура WMSysCommand объявлена как приватный метод в разделе реализации формы. Эта процедура обрабатывает сообщение WM_ SYSCOMMAND, которое отправляется окну, когда пользователь пытается минизировать или максимизировать его.

Реализация формы

В разделе реализации основной формы (TF_Shop) есть переопределенная версия процедуры WMSysCommand. Эта метод проверяет, равен ли свойство CmdType сообщения TWMSysCommand значению SC_MINIMIZE. Если это так, код минизирует всю приложение с помощью метода Application.Minimize.

Альтернативное решение

Если вы хотите достичь этого поведения для всех не модальных дочерних окон, вы можете изменить код, чтобы проверять, является ли окно дочерним окном основной формы перед минизированием приложения. Вы можете это сделать, проверяя свойство Parent формы. Вот пример:

procedure TF_Shop.WMSysCommand(var message: TWMSysCommand);
begin
  if (message.CmdType = SC_MINIMIZE) and not IsMainForm then
    Application.Minimize;
  else
    inherited;
end;

function TForm1.IsMainForm: Boolean;
begin
  Result := (Parent is TMainForm); // Пусть TMainForm - основная форма
end;

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

Статья описывает способ сворачивания приложения при сворачивании неглавного окна, реализуемый с помощью обработчика сообщений WMSysCommand и использования метода Application.Minimize.


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

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




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


:: Главная :: Размеры и Положение ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 02:29:43/0.003410816192627/0