Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LYeKTsII_GURSKOGO_1.doc
Скачиваний:
10
Добавлен:
16.11.2019
Размер:
3.31 Mб
Скачать

К омпонент tMainMenu

TMainMenu

Стандартный интерфейс прикладной программы предусматривает, как правило, стандартное меню. В Windows есть два типа меню: главное и локальное. Главное реализуется компонентом TMainMenu, а локальное – PopupMenu.

На форму можно поместить сколь угодно объектов типа меню, отображается же в верхней части формы только одно главное меню, имя которого указывается в свойстве меню главной формы.

Компонента TMainMenu относится к не визуальной компоненте. Для создания непосредственно меню в Delphi предусмотрено свойство – дизайнер меню. Чтобы его активизировать, нужно дважды счелкнуть любой клавишей мыши по данной компоненте.

Как правило, главное меню содержит строку пунктов, каждый из которых может содержать вложенные (выпадающие) меню. Вначале дизайнер меню обозначает первый пункт меню. Чтобы ввести название этого пункта, необходимо перейти в инспектор объектов и в свойстве Caption набрать имя этого меню. После нажатия клавиши Enter появляется следующий пункт, работа с которым аналогична.

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

Замечание

  1. Если после Caption перед названием ввести символ &, то элемент, стоящий за знаком при выполнении программы будет подчеркнут и для данного компонента можно использовать композицию: (Alt)+(буква).

  2. Чтобы отделить группу опций меню, следует очередному пункту меню присвоить имени в свойстве Caption символ (-).

  3. Д ля создания разветвленных меню следует щелкнуть правой кнопкой мыши на данный код опции. При этом появляется локальное меню. В котором необходимо выбрать команду CreatSubmenu. При этом та подопция, которая содержит ссылку на подчиненное меню, имеет значок.

С каждой подопцией меню, содержащей команду, связано событие OnClick.

Пример

П усть требуется организовать управление программой с помощью следующей структуры меню. По активизации ‘Ввод данных’ будет появляться дополнительная форма, в которой будем вводить данные.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

File1: TMenuItem;

Edit1: TMenuItem;

Tools1: TMenuItem;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

Info1: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Info1Click(Sender: TObject);

procedure N6Click(Sender: TObject);

private

a, b, c : real;

{ Private declarations }

public

{ Public declarations }

end;

Var

Form1: TForm1;

implementation

uses Unit2, Unit3;

{$R *.DFM}

procedure TForm1.N1Click(Sender: TObject);

begin

Form2.ShowModal;

end;

//Чтобы форма2 была диалоговым окном при ее создании

//в инспекторе объектов необходимо присвоить свойству BorderStyle := Dialogs;

//Тогда эта форма не имеет никаких кнопок и является //диалоговым окном.

procedure TForm1.N2Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

c : = a + b;

PostProcessor1.Enabled := true;

end;

Замечание

При создании меню первоначально необходимо запретить доступ к пункту главного меню PostProcessor, так как сначала неизвестен результат. Сделать этот пункт доступным можно в обработчике, связанным с созданием формы.

procedure TForm1.FormCreate(Sender: TObject);

begin

PostProcessor1.Enabled := false;

end;

procedure TForm1.Info1Click(Sender: TObject);

begin

if c<>0 then MessageBox(0,'Результат получен','инф',тв-OK) else MessageBox(0,'Нет исходных данных','Информация',тв-OK);****************************

end;

procedure TForm1.N6Click(Sender: TObject);

begin

Form3.ShowModal;

end;

end.

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm2 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.DFM}

procedure TForm2.Button1Click(Sender: TObject);

begin

Form1.A := StrToFloat(Edit1.Text);

Form1.B := StrToFloat(Edit2.Text);

Сlose;

end;

end.

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm3 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.DFM}

procedure TForm3.Button1Click(Sender: TObject);

begin

Сlose;

end;

procedure TForm3.FormCreate(Sender: TObject);

begin

Edit1.Text := FloatToStr(Form1.0);

end;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]