Вкладка Standard. Компонент TPopupMenu

   
На этом шаге мы рассмотрим компонент TPopupMenu

   
Контекстное меню вызывается в приложении Windows при щелчке правой кнопки мыши и является стандартной
возможностью многих программ. Компонент TPopupMenu (Всплывающее меню) предназначен
для создания именно таких контекстных меню.

   
После размещения невизуального компонента ТРорuрМеnu в форме с ним можно работать так же, как и с
компонентом ТМаinМеnu. Единственное отличие состоит в том, что в контекстном меню не может быть
нескольких разделов верхнего уровня, так как все его пункты располагаются в одном вертикальном столбце. Хотя
для каждого пункта меню можно создать подменю, для каждого пункта подменю можно создать свое подменю и т.д.

   
При проектировании необходимо размещать контекстное меню в том компоненте, для которого оно предназначено,
тогда оно будет оправдывать свое название "контекстное меню".

   
Контекстное меню создается с помощью конструктора меню, процесс создания и свойства контекстного меню ничем
не отличаются от создания меню класса TMainMenu.

   
Рассмотрим пример использования компонентов TMainMenu и ТРорuрМеnu. Добавим к программе
компонента TMainMenu компонент ТРорuрМеnu, который будет выполнять те же самые действия,
которые описаны в компоненте TMainMenu. На этом примере мы рассмотрим не только как можно использовать
компонент TPopupMenu, но и еще раз напомним алгоритм присоединения готовых обработчиков событий к новым событиям.

   
Для компонента TPopupMenu вызовем Menu Designer, щелкнув по кнопке в правой половине строки
Items инспектора объектов. Создадим следующие пункты меню: Новый, Открыть..., Сохранить..., Сохранить как....

   
Текст пунктов вводится в строке Caption окна инспектора объектов.

   
Для событий OnClick пунктов Новый, Открыть..., Сохранить..., Сохранить как... уже есть соответствующие обработчики
в компоненте TMainMenu. Рассмотрим, как их можно использовать при выборе соответствующих пунктов меню
в компоненте TPopupMenu.

   
Для компонента ТРорuрМеnu укажите (выберите из списка) имена соответствующих процедур, созданных ранее
для пунктов компонента TMainMenu. Например, для пункта Сохранить перейдите на вкладку Events
и в строке с именем события OnClick выберите имя нужного обработчика из выпадающего списка. Для этого
нужно щелкнуть по кнопке со стрелкой вниз и выбрать из списка имя нужного обработчика (в нашем случае это N4Click).


Рис.1. Окно инспектора объектов

   
Вот, что должно получиться, если вы все сделали правильно.


Рис.2. Использования компонентов TMainMenu и ТРорuрМеnu

   
Приведем текст программы:

unit Unit1;
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus;
type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
PopupMenu1: TPopupMenu;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
   private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.N2Click(Sender: TObject);
begin
  MessageBox (0,'вы выбрали пункт новый', 'выбор пункта', mb_OK)
end;
procedure TForm1.N3Click(Sender: TObject);
begin
   MessageBox (0,'вы выбрали пункт открыть', 'выбор пункта', mb_OK)
end;
procedure TForm1.N4Click(Sender: TObject);
begin
  MessageBox (0,'вы выбрали пункт сохранить', 'выбор пункта', mb_OK)
end;
procedure TForm1.N5Click(Sender: TObject);
begin
  MessageBox (0,'вы выбрали пункт сохранить как', 'выбор пункта', mb_OK)
end;
procedure TForm1.N7Click(Sender: TObject);
begin
      Close;
end;
end.

Текст этого примера можно взять здесь.

   
На следующем шаге мы рассмотрим компонент TLabel



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий