Шаг 4.
Вкладка 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




Предыдущий шаг Содержание Следующий шаг