Компонент TPopupMenu

Компонент TPopupMenu  — служит для появления всплывающего меню когда вы щелкаете правой кнопкой мыши по приложению.  У Lazarus очень простая реализация этого всплывающего меню. Как только мы создадим меню, мы можем показать его тремя различными способами, которые я продемонстрирую.

Создание всплывающего меню

Создать всплывающее меню очень просто. Просто перетащите компонент TPopupMenu на форму. Разместить его можно в любом месте т.к элемент не визуальный. Теперь щелкните правой кнопкой мыши и выберите «Редактор меню …».Компонент TPopupMenu

Вы увидите 1 пункт меню, уже созданный для вас. Вы можете изменить его свойство, например, свойство Caption на что-то вроде «мое первое меню». Для этого нужно щелкнуть элемент, чтобы выбрать его, а затем изменить свойство в Инспекторе объектов.Добавление подменю

Если вы хотите добавить больше элементов меню, то вам необходимо щелкнув левой кнопкой мыши по «Добавить элемент» или «Добавить подменю» и после этого появится новый пункт меню. Слева есть форма «Действия с элементами» с помощью которой вы можете удалять, вставлять или менять порядок элементов меню.

Использование всплывающего меню 3 способами


Способ 1: использование свойства PopupMenu (без кода)

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

Для примера разместите TButton на форме. Установите его свойство PopupMenu в TPopupMenu из выпадающего меню.Свойства

Теперь запустите проект (F9 или Run-> Run) и щелкните правой кнопкой мыши на кнопке, чтобы увидеть всплывающее меню.


Способ 2: использование кода для отображения всплывающего меню

Использование свойства PopupMenu для отображения всплывающего меню просто и подходит практически для всех целей. Иногда вы можете захотеть сделать несколько пользовательских кодов, прежде чем показывать всплывающее меню. Тогда использование этого метода — хорошая идея.

Разместите другой компонент TButton на форму (предположим, он называется Button2). В его событии OnMouseDown (Инспектор объектов-> События-> OnMouseDown) введите следующий код:

procedureTForm1.Button2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ifButton = mbRight then
  PopupMenu1.PopUp;
end;
 Теперь запустите проект (F9 или Run-> Run) и щелкните правой кнопкой мыши по кнопке, и вы увидите всплывающее меню.TPopupMenu.PopUp показывает меню в позиции указателя мыши.

Способ 3: показ меню по левому клику (фиксированное положение)

Также существует возможность добавить всплывающее меню с фиксированным положение. Для этого перетащите еще один TButton (предположим, он называется Button3), а затем дважды щелкните по нему и введите:

procedureTForm1.Button3Click(Sender: TObject);
var
  pt, pt2: TPoint;
begin
  pt.x:=Button3.Left;
  pt.y:=Button3.Top+Button3.Height;
  pt2:=ClientToScreen(pt);
  PopupMenu1.PopUp(pt2.x, pt2.y);
end;
 Теперь запустите проект и нажмите левой кнопкой миши по кнопке Button3. Вы увидите меню, которое появится внизу кнопки. Процедура PopUp должна показывать меню по указателю мыши, а не внизу кнопки. Как мы это сделали? С помощью синтаксиса PopUp (x, y). С помощью этого синтаксиса вы можете отобразить меню в любом месте экрана.
всплывающее меню под кнопкой

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *