procedure TForm1.FormCreate(Sender: TObject);
var
Style: Longint;
begin
Style := GetWindowLong(Handle, GWL_STYLE);
SetWindowLong(Handle, GWL_STYLE, Style andnot WS_SYSMENU);
end;
Перевод:
Код, который я предоставил, является частью приложения Delphi, которое стремится скрыть кнопки (также известные как системное меню) в заголовке формы.
В Windows у каждого окна есть стандартная группа кнопок в правом верхнем углу, которая включает в себя минимизацию, максимизацию/восстановление и закрытие. Эти кнопки контролируются стилем WS_SYSMENU. Удалив этот стиль из стиля окна, вы можете эффективно скрыть эти кнопки.
Вот как это работает:
Функция GetWindowLong получает текущий стиль окна формы.
Функция SetWindowLong устанавливает новый стиль для окна формы, модифицируя полученный стиль. В этом случае она удаляет стиль WS_SYSMENU из оригинального стиля.
Однако есть некоторые потенциальные проблемы с этим подходом:
Он может не работать так, как ожидалось, если у вашей формы установлены другие стили окна.
Кнопки все еще будут доступны при использовании 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