Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример. Создание главного меню

Компонент MainMenu (класс TMainMenu).

FINALIZATION

INITIALIZATION

If not Eof(FA) Then Begin

Close

Finalization

Initialization

If not Eof(FA) Then Begin

Read(FA,X);

Y:=X*X;

Str(Y:14,S);

Edit1.Text:=S;

Writeln(FB,Y);

End;

end;

в) В конце модуля, перед end. добавим секции инициализации и завершения:

AssignFile(FA,'Vxod5.txt');

AssignFile(FB,'Out5.txt');

Reset(FA);

Append(FB);

CloseFile(FA);

CloseFile(FB);

Полный текст модуля формы приведен ниже.

unit Uni5;

interface

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

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private { Private declarations }

public { Public declarations }

end;

var

Form1: TForm1;

S:String;

X,Y:Real;

FA,FB:TextFile;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Read(FA,X);

Y:=X*X;

Str(Y:14,S);

Edit1.Text:=S;

Writeln(FB,S);

End;

end;

AssignFile(FA,'Vxod5.txt');

AssignFile(FB,'Out5.txt');

Reset(FA);

Append(FB);

CloseFile(FA);

CloseFile(FB);

end.

Пиктограмма:.

При создании приложения в Delphi, можно использовать меню двух основных видов:

главное меню ( класс TMainMenu). Такое меню принадлежит форме и отображается на ней в левом верхнем углу. Если в приложении несколько форм, то для удобства можно объединять меню всех активных форм в одном.

всплывающее (контекстное) меню (класс TPopupMenu). Такое меню предусмотрено почти у всех компонентов — элементов управления Windows. Оно возникает (всплывает) при нажатии правой кнопки мыши на этом компоненте.

Меню являются иерархическими структурами, состоящими из пунктов меню. Каждый пункт может быть выбран (активизирован). Это может произойти вследствие щелчка кнопкой мыши, нажатия соответствующих клавиш на клавиатуре или вызова процедуры в программе.

На нижнем уровне лежат команды меню — пункты, с выбором которых должна быть связана та или иная реакция приложения. Команды объединяются в подменю. Подменю — это пункты, выбор которых означает показ или свертывание списка входящих в него команд и подменю.

С активизацией элементов меню связано событие onClick. Код, расположенный в обработчике этого события, будет выполняться, когда пользователь выбирает элемент меню. Элемент можно активизировать и при помощи клавиатуры. В этом случае доступ к пунктам главного меню осуществляется с помощью клавиши F10 (стандартная клавиша Windows). При создании меню можно организовать доступ к элементам меню с помощью комбинации клавиш Alt + клавиша активизации.

Принципы создания и работы с меню в Delphi очень просты. Каждому пункту меню соответствует свой компонент класса TMenuItem. Этот класс предназначен для добавления пунктов меню. Добавлять к меню новые пункты (а к форме — новые компоненты) можно либо во время разработки (при помощи Конструктора меню), либо во время выполнения. Компонент TMenuItem в палитру компонентов не входит. Этот компонент является основой системы меню в Delphi, он входит в состав имеющихся компонентов TMainMenu и TPopupMenu.

 

5.13.1. Свойства компонента M ainMenu.

Caption - текст, содержащийся в пункте меню.

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

Например, для строки '&File' нажатие <Alt> + <F> означает выбор этого пункта.

Правило. Если текст состоит из одного символа "-", то этот пункт служит разделителем – в списке пунктов меню на этом месте будет горизонтальная черта.

Enabled - если Enabled равно False, пункт изображается серым цветом и не воспринимает сообщений.

Checked - признак пометки. Часто пункты меню используются для переключения каких-либо режимов работы программы. При этом они могут быть отмечены "галочкой" перед началом текста (для пометки пункта меню это свойство должно иметь значение True.).

Break – переход к новому расположению. Это свойство может иметь одно из следующих значений: mbNone, mbBreak, mbBarBreak. Если оно установлено в mbBreak, то команды меню, начиная с текущей, располагаются в новом соседнем с прежним столбце (при этом их принадлежность не изменяется). Если оно равно mbBarBreak, столбцы при этом разделяются вертикальной чертой.

В Delphi все компоненты меню типа TMenuItem могут быть как простыми командами, так и подменю, имеющими собственный список пунктов.

Замечание. Особенность Компонента TMainMenu в том, что в нем реализован сложный механизм объединения меню. Это необходимо по следующим причинам:

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

• Объединение меню нужно при работе с интерфейсом MDI и его подокнами.

• Механизм объединения меню используется серверами OLE, запускаемыми по месту нахождения объекта OLE. Загружаясь, сервер дописывает осуществляемые им операции к меню другого приложения.

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

При этом у главного меню оно должно оставаться равным False, иначе главное меню будет вообще невидимым. Объединение будет происходить автоматически при активизации новых форм или серверов OLE. Кроме автоматического режима, объединение меню можно выполнить при вызове метода: procedure Merge(Menu: TMainMenu);

 

Пусть надо создать Главное меню, содержащее два пункта меню: "Файл" и "Помощь". Меню "Файл", в свою очередь должно содержать пункты меню:

n "выполнить" (для выполнения некоторого алгоритма);

n "Выход"(для закрытия приложения).

Меню "Помощь" пусть содержит один пункт "О программе".

Для вывода сообщения (пункт меню "О программе") воспользуемся процедурой MessageDlg.

1. На панели "Стандартные" щелкнуть по пиктограмме компонента MainMenu и перенести его на форму. MainMenu является не визуальным компонентом, поэтому его можно разместить в любом месте формы. При этом на форме появится пиктограмма компонента в том же виде, в каком она отображается в палитре компонентов. При запуске приложения эта пиктограмма не отображается на форме.

2. Сделать двойной щелчок по пиктограмме компонента MainMenu - откроется окно редактора меню. В свойстве Caption (Инспектор объектов) напечатать название пункта меню (Файл) и щелкнуть по выделенному прямоугольнику в окне редактора. В окне редактора появится название созданного пункта меню и заготовки для пунктов меню, расположенных справа и ниже созданного пункта меню.

!!! Бобр. нажать Enter – редактор переключится обратно в проектируемое меню, где уже появится первый пункт.

Кроме того в модуле формы в описании класса TForm1 появится компонент

имя: TMenuItem;

где имя имя пункта меню. Это имя формируется автоматически, оно отображается в ИО, причем если название пункта меню набирать латинским шрифтом, то в качестве имени используется название пункта меню, если же названия пунктов меню набирать русскими буквами, то в качестве имен Delphi будет использовать номера N1, N2 и т.д.

3. Безразлично какой пункт меню будет создаваться следующим – ниже или справа. Выделить нижний прямоугольник, в свойстве Caption (ИО) напечатать название подпункта меню ("выполнить") и щелкнуть по выделенному прямоугольнику в окне редактора.

4. Аналогично создать подпункт меню "Выход" и пункт меню "Помощь". Закрыть редактор меню.

5. Создание обработчиков событий.

9.1. Щелкнуть по меню "Файл" и в раскрывшемся списке пунктов меню щелкнуть по пункту "Выполнить" (один щелчок - если в форме, двойной - в конструкторе). Откроется окно редактора модуля формы с заготовкой процедуры для данного пункта меню

procedure TForm1.N2Click(Sender: TObject);

begin

end;

В раздел операторов этой процедуры надо вставить соответствующий текст.

Сюда про разделитель и &

 

 

5.13.2. Компонент TPopupMenu

Страница Палитры компонентов Standard

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

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

<== предыдущая лекция | следующая лекция ==>
Ввод и вывод с помощью внешних файлов | Добавление формы
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 1623; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.022 сек.