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

Уменьшить форму по щелчку правой кнопкой мышки на TitleBar

Delphi , Программа и Интерфейс , Заголовок формы

Уменьшить форму по щелчку правой кнопкой мышки на TitleBar

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

type
   TForm1 = class(TForm)
   private
     { Private-Deklarationen }
     FOldHeight: Integer;
     procedure WMNCRButtonDown(var Msg: TWMNCRButtonDown); message WM_NCRBUTTONDOWN;
   public
     { Public-Deklarationen }
   end;

 var
   Form1: TForm1;

 implementation

 {$R *.DFM}

 procedure TForm1.WMNCRButtonDown(var Msg: TWMNCRButtonDown);
 begin
   if (Msg.HitTest = HTCAPTION) then
     if (ClientHeight = 0) then
     begin
       ClientHeight := FOldHeight;
       Application.ProcessMessages;
     end
     else
     begin
       FOldHeight   := ClientHeight;
       ClientHeight := 0;
       Application.ProcessMessages;
     end
 end;

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

В предоставленном коде реализовано приложение Delphi, которое уменьшает свой размер при клике правой кнопкой мыши на заголовке формы. Процедура WMNCRButtonDown обрабатывает это событие, проверяя результат теста хита (HTCAPTION), который указывает, что клик произошел на заголовке формы. Если высота клиента равна 0, то это означает, что форма уже была миноризирована, и код восстанавливает ее оригинальную высоту (FOldHeight). В противном случае код устанавливает высоту клиента в 0 и хранит ее оригинальное значение в FOldHeight.

В предложенном улучшении:

procedure TForm1.WMNCRButtonDown(var Msg: TWMNCRButtonDown);
begin
  if (Msg.HitTest = HTCAPTION) then
    ClientHeight := IfThen(ClientHeight = 0, FOldHeight, 0);
end;

Я заменил условный оператор на одну строку с использованием функции IfThen из модуля System.SysUtils. Это делает код более компактным и легче для чтения.

Кроме того, вы можете добавить визуальное обратное действие, чтобы указать, что форма была миноризирована или восстановлена. Например, вы можете изменить текст заголовка формы или его иконку, когда высота клиента равна 0:

procedure TForm1.WMNCRButtonDown(var Msg: TWMNCRButtonDown);
begin
  if (Msg.HitTest = HTCAPTION) then
  begin
    ClientHeight := IfThen(ClientHeight = 0, FOldHeight, 0);
    Title := IfThen(ClientHeight = 0, 'Minimized', Caption);
  end;
end;

В этом примере свойство Title обновляется для отражения состояния формы - миноризированной или нет. Вы можете настроить это поведение в соответствии с вашими конкретными требованиями.

Наконец, стоит отметить, что этот код предполагает, что форма имеет не равную нулю оригинальную высоту клиента, хранящуюся в FOldHeight. Если вы хотите обработать случай, когда форма создается с нулевой высотой клиента, вам нужно добавить дополнительный логик для установки FOldHeight соответствующим образом.

Уменьшить форму по щелчку правой кнопкой мышки на TitleBar с помощью процедуры TForm1.WMNCRButtonDown, которая изменяет высоту клиентской области формы.


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

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




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


:: Главная :: Заголовок формы ::


реклама


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

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