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

Удалить пункт системного меню

Delphi , Компоненты и Классы , Меню

Удалить пункт системного меню

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

procedure TForm1.Button1Click(Sender: TObject);
 var
   Handle: THandle;
 begin
   Handle := GetSystemMenu(Self.Handle, False);
   RemoveMenu(Handle, 1, MF_BYPOSITION);
   RemoveMenu(Handle, 2, MF_BYPOSITION);
 end;

Here is a translation of the provided text into Russian:

Код, который я предоставил, - это процедура Delphi, удаляющая первые два элемента из системы меню формы. Системное меню отображается при правом клике на заголовке формы.

Вот разбивка каждого шага: 1. Handle := GetSystemMenu(Self.Handle, False); - Это строка получает handle к системному меню, связанному с формой. Второй параметр, False, указывает, что мы не хотим изменять меню. 2. RemoveMenu(Handle, 1, MF_BYPOSITION); - Это строка удаляет первый элемент из меню. Параметры: - Handle: handle меню - 1: позиция (индекс) элемента для удаления (в этом случае, первый элемент) - MF_BYPOSITION: указывает, что удаление происходит по позиции (а не по имени или ресурсному ID) 3. RemoveMenu(Handle, 2, MF_BYPOSITION); - Это строка удаляет второй элемент из меню. Параметры аналогичны тем в шаге 2.

Вот предложение по альтернативному решению: Вместо ручного удаления элементов из системы меню, вы можете создать свой собственный кастомный контекстное меню и отобразить его при правом клике на заголовке. Это позволяет вам иметь больше контроля над внешним видом и поведением контекстного меню.

Например:

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if (Button = mbRight) then
    ShowPopupMenu(Self.Handle);
end;

procedure TForm1.ShowPopupMenu(Handle: THandle);
var
  PopupMenu: TPopupMenu;
begin
   // Создайте новое контекстное меню
  PopupMenu := TPopupMenu.Create(self);

   // Добавьте элементы в контекстное меню, как нужно

   // Отобразите контекстное меню
  PopupMenu.PopUp;
end;

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

Обратите внимание, что вам нужно добавить обработчик события FormMouseDown в список событий вашей формы, чтобы это код работал.

В статье описывается способ удаления пункта системного меню в Delphi с помощью процедуры TForm1.Button1Click(Sender: TObject).


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

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