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

Как спрятать кнопки в заголовке окна

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

Как спрятать кнопки в заголовке окна

Автор: Andrey

procedure TForm1.FormCreate(Sender: TObject);
var
  Style: Longint;
begin
  Style := GetWindowLong(Handle, GWL_STYLE);
  SetWindowLong(Handle, GWL_STYLE, Style and not WS_SYSMENU);
end;

Перевод:

Код, который я предоставил, является частью приложения Delphi, которое стремится скрыть кнопки (также известные как системное меню) в заголовке формы.

В Windows у каждого окна есть стандартная группа кнопок в правом верхнем углу, которая включает в себя минимизацию, максимизацию/восстановление и закрытие. Эти кнопки контролируются стилем WS_SYSMENU. Удалив этот стиль из стиля окна, вы можете эффективно скрыть эти кнопки.

Вот как это работает:

  1. Функция GetWindowLong получает текущий стиль окна формы.
  2. Функция SetWindowLong устанавливает новый стиль для окна формы, модифицируя полученный стиль. В этом случае она удаляет стиль WS_SYSMENU из оригинального стиля.

Однако есть некоторые потенциальные проблемы с этим подходом:

  1. Он может не работать так, как ожидалось, если у вашей формы установлены другие стили окна.
  2. Кнопки все еще будут доступны при использовании Alt+Space или правого клика на заголовок.

Более надежный способ заключается в создании пользовательских контролов (например, панели или группбокса) и размещении их в желаемом положении, а затем установке свойства Parent для формы. таким образом, вы можете лучше контролировать внешний вид своих кнопок и иметь больше гибкости при настройке.

Вот пример:

procedure TForm1.FormCreate(Sender: TObject);
begin
   // Создайте панель для пользовательских кнопок заголовка
  Panel := TPanel.Create(self);
  Panel.Parent := self;
  Panel.Align := alTop;
  Panel.AlignWith := alClient;

   // Добавьте свои пользовательские контролы в панель
  ButtonMinimize := TButton.Create(Panel);
  ButtonMinimize.Caption := 'Minimize';
  ButtonMinimize.Height := 20;
  ButtonMinimize.Width := 60;
  ButtonMinimize.Align := alLeft;

  ButtonRestore := TButton.Create(Panel);
  ButtonRestore.Caption := 'Restore';
  ButtonRestore.Height := 20;
  ButtonRestore.Width := 70;
  ButtonRestore.Align := alRight;

   // ... добавьте больше кнопок или контролов, как нужно
end;

Этот подход обеспечивает более контроль над внешним видом и функциональностью своих пользовательских кнопок заголовка.

В статье описывается способ спрятать кнопки в заголовке окна с помощью изменения стиля окна в программе на языке Delphi.


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

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




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


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


реклама


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

Время компиляции файла: 2024-11-30 11:42:55
2024-12-11 00:03:22/0.0099639892578125/1