среда, 23 ноября 2011 г.

Создание меню в Delphi


Система визуального программирования Delphi относится к RAD – системам (Rapid Application Development, быстрая разработка приложений), позволяющая быстро и эффективно разрабатывать приложения, включая и приложения для работы с базами данных. Кроме того, обладает практически всеми возможностями современных СУБД, таких как, например, Microsoft Access или Visual Fox Pro. Она имеет развитые возможности по созданию пользовательского интерфейса с помощью широкого набора инструментальных программных средств, позволяет визуально подготавливать запросы к
базам данных, а также непосредственно писать запросы на языке SQL.
Разработка приложения осуществляется в окне Конструктора формы Form1, которое наряду с главным окном Delphi – Project1 и окном инспектора объектов появляется после загрузки Delphi командой Пуск | Программы | Borland Delphi | Delphi.
При первой загрузке Delphi по умолчанию создает «пустой» файл проекта. Для создания собственного проекта необходимо выполнить команду File | New | Application. В результате создания нового проекта на экране появится окно Форм с заголовком Form1 и окно редактора кода с модулем Unit1.pas и файлом проекта Project1.dpr, эти окна можно размещать так, как удобно пользователю. В одно и то же время может быть открыт только один проект, поэтому перед сохранением нового проекта Delphi спрашивает нужно ли сохранить текущее приложение.
Форма является основой, на которой размещаются необходимые компоненты, используемые приложением для выполнения возложенных на него функций и задач. Создание приложений в Delphi включает следующие этапы:
а) создание визуального интерфейса приложения, для этого выбираются необходимые компоненты из Палитры компонентов и размещаются на форме;
б) установка при помощи окна Object Inspector свойств формы и элементов управления, что необходимо для придания объектам определенного вида и законов их поведения;
в) связывание с компонентами кода на языке Object Pascal для обработки событий, возникающих при использовании мыши, клавиатуры, системных событий и тому подобное.
Создание приложений при помощи визуальных компонентов следует широко применяемому в различных программных продуктах принципу WYSIWYG (What You See Is What You Get – что видишь, то и получишь) и поэтому то, что появляется на экране во время разработки, будет соответствовать тому, что наблюдаться во время выполнения приложения.
Простейшим компонентом для обработки текста является Label (Метка), доступным на странице Standard ( ). Компонент представляет собой статический текст и применяется для идентификации других объектов приложения, он может помочь пользователю сориентироваться и обеспечит его необходимой информацией.
Пусть необходимо создать форму в виде, представленном на рисунке  1 Для создания заголовка формы помещается компонент Label, для того  необходимо выбрать его на странице Standard, щелкнув на нем левой кнопкой мыши. Затем передвинуть указатель к тому месту, где надо разместить  объект. В окне Object Inspector необходимо задать свойства компонента.
Для любого элемента управления значение свойства Caption всегда соответствует надписи на самом элементе управления. Поэтому для задания заголовка формы с помощью компонента Label установим значение его свойства Caption – «Выбор группы станков». При запуске приложения введенное значение будет той же надписью, которое отобразится на элементе управления.
 Для работы многих приложений требуется выбор одного из вариантов, перечень которых задается в виде списка (меню). Создание такого режима можно организовать с помощью визуального компонента RadioButton (радиокнопка), расположенного на странице Standard ( ). Компоненты RadioButton, собранные в одну группу, могут применяться для создания списка. В один момент может быть выбран только один из группы переключателей. Набор альтернатив, из которых выбирается одна, реализуется требуемым количеством радиокнопок, размещенных в одном контейнере (форме, панели и тому подобное).
Для реализации формы «Выбор группы станков» (рисунок 1) на форме располагается пять компонентов RadioButton. Каждому компоненту необходимо установить в окне Инспектора объектов свое значение свойства Caption:
кнопке RadioButton1 - «Токарные»;
RadioButton 2 - «Сверлильные»;
RadioButton3 -«Шлифовальные»;
RadioButton4 - «Фрезерные»;
RadioButton 5- «Выход».
Пусть только выбор варианта «Токарные» из предложенного списка приведет к дальнейшей работе приложения, остальные группы станков недоступны, а выбор «Выход» позволит закрыть работу приложения. Пусть необходимо на создаваемой форме разместить компонент Button (Кнопка) на странице Standart ( ), который обеспечит переход к следующему шагу работы проекта. Для компонента Button в свойство Caption вводится значение «Далее». Поскольку нажатие кнопки должно привести к определенным полезным действиям, необходимо задать набор событий, которые этот объект может обрабатывать. Для генерации блока кода обработчика события надо сделать двойной щелчок мышью на объекте. Курсор окажется в окне Редактора кода. Курсор будет находиться внутри пустой процедуры Button1Click, в которой между операторами цикла begin…end нужно ввести необходимый программный код. Процедура для кнопки Button должна выглядеть следующим образом:

procedure TForm1.Button1Click(Sender: TObject);
begin
if RadioButton1.Checked then form2.showmodal;
if RadioButton2.Checked then showmessage('Данная группа станков не-
доступна');
if RadioButton3.Checked then showmessage('Данная группа станков не-
доступна');
if RadioButton4.Checked then showmessage('Данная группа станков не-
доступна');
if RadioButton5.Checked then form1.Close;
end;

Если был выбран вариант «Токарные» в форме «Выбор группы станков», то на экране должна появиться следующая форма Form2, в которой предлагается выбрать тип станка, аналогично той , которая показана на рисунке 2. Для открытия новой формы выполняется команда File | New | Form. Эта команда создаст новую форму и добавит ее к текущему проекту.
Создание главного и выпадающего меню возможно с помощью Конструктора меню, который позволяет также проверить структуру меню во время разработки приложения. Необходимо выполнить следующие этапы:
а) поместить невизуальный компонент MainMenu (главное меню) со страницы Standard на форму;
б) сделать двойной щелчок мышью на компоненте меню, в результате будет выделен первый пункт меню, который еще предстоит определить;
в) ввести имя меню верхнего уровня (например, «Типы станков») и нажать клавишу Enter, в результате имя пункта меню верхнего уровня появится на панели меню приложения;
г) заполнить подпункты первого пункта нужными именами;
д) заполнять следующие пункты и подпункты до тех пор, пока не будет создана задуманная структура.
При создании меню появляются пустые графы ниже последнего подпункта в выпадающем меню и вправо от последнего пункта в окне меню. На них щелкают, когда требуется добавить новые пункты. Подразделы выпадающего меню можно отделять разделительной линией между ними, для этого используют вместо подписи несколько символов минус (-). Назначать имя разделителю не обязательно. Он полезен для визуального разбиения пунктов меню на отдельные группы. Его применение сделает интерфейс приложения более удобным и дружественным пользователю.
Во время разработки приложения или во время его выполнения некоторые пункты меню можно сделать недоступными. Деактивация пунктов меню выполняется следующим образом:
- выбрать редактируемый пункт (или подпункт меню);
- дважды нажать на нем мышью;
- в Инспекторе объектов установить свойству Enabled значение
False.
В результате выполненных действий в недоступных пунктах текст отобразится серым цветом.
Закончив построение меню и щелкнув на кнопке закрытия окна конструктора меню, можно просмотреть пункты меню, как в обычном меню, выбирая их или проводя над ними мышь с нажатой кнопкой.
Чтобы добавить код для любого из пунктов, необходимо дважды щелкнуть на нужном пункте меню, в результате откроется участок кода, соответствующий процедуре обработки события выбора этого пункта.
В качестве примера ниже приведены процедуры, обеспечивающие в форме, приведенной на рисунке 2, при выборе подпункта «Автоматы и полуавтоматы» открытие формы Form3, а при выборе подпункта «Выход» закрытие формы Form2 .

Для подпункта «Автоматы и полуавтоматы»:

procedure TForm2.N2Click(Sender: TObject);
 begin
 Form3.showmodal;
 end;

Для подпункта «Выход»:

procedure TForm2.N5Click(Sender: TObject);
begin
 form2.Close;
end; 




Комментариев нет:

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