|
||||||||||||||||||||||||||||||||||||||||||
Begin. If CheckBox1.Checked ThenBegin End; N4 – это идентификатор пункта меню внутри программы. В описании класса TForm1 он (наряду с другими пунктами: N1, N2, N3) декларирован следующим образом: N4: TMenuItem; Класс TmenuItem предназначен для объявления пунктов меню. Чтобы создать, например, пункт меню Выход, надо в реализации метода N4Click вызвать метод Close класса TForm, наследником которого является класса TForm1. ProcedureTForm1.N4Click (Sender: TObject); Begin Close End; Этот метод выполняет корректное закрытие текущей формы (окна). Перед закрытием программы желательно проверить, можно ли ее в данный момент корректно закрыть (иногда закрытие окна не допускается, например когда запущено подчиненное приложение – поток, который должен завершиться в первую очередь). Подобную проверку выполняет функция CloseQuery, возвращающая значение типа Boolean. ProcedureTForm1.N4Click (Sender: TObject); Begin IfCloseQuery ThenClose End; Разработчики Delphi рекомендуют другой способ завершения программы – выполнение команды Application.Terminate; Переменная Application – глобальная переменная, она имеет тип TApplication и содержит базовый набор полей и методов, характерных для любой программы Windows. Компонент Контекстное меню (TPopupMenu) Контекстное меню, вызываемое по щелчку правой кнопки мыши, является стандартной и удобной возможностью многих приложений Windows. Компонент TPopupMenu (Всплывающее меню) предназначен для создания такого рода меню. Компонент TPopupMenu размещается на форме аналогично компоненту TMainMenu. Структура его формируется также аналогично. Отличие состоит в том, что в контекстном меню не может быть нескольких разделов верхнего уровня, так как все его пункты располагаются в одном вертикальном столбце. Для пункта меню выход можно получить. ProcedureTForm1.N7Click (Sender: TObject); Begin IfCloseQuery ThenClose End; Для вызова созданного меню из программы достаточно для соответствующего объекта во вкладке Events Инспектора объектов задать значение пункта PopupMenu равным имени созданного контекстного меню (по умолчанию PopupMenu1). Можно создать обработчик щелчка правой кнопкой мыши на форме и вручную, хотя это более трудоемко. Для обработки щелчка мыши в DELPHI используются три события OnClick, OnMouseDown (при нажатии кнопки мыши) и OnMouseUp (при отпускании кнопки мыши). В рассматриваемом случае правильнее обрабатывать отпускание кнопки. Чтобы добавить в программу обработчик такого события, надо в Проектировщике форм выделить главную форму и в Инспекторе объектов на вкладке Events дважды щелкнуть на строке с надписью OnMouseUp. Система DELPHI сгенерирует следующий текст. Procedure TForm1.FormMouseUp (Sender: TObject; Button: TMouseButton; Shift: TShiftState; Begin End; В теле данной процедуры необходимо активизировать контекстное меню PopupMenu1. Это осуществляется с помощью метода Popup() с двумя параметрами – координатами верхнего левого угла меню. Координаты указываются в экранной системе отчета, а не в границах клиентской области программы. Для определения координат правильнее пересчитать экранные координаты точки щелчка в координаты клиентской области с помощью метода формы GetClientOrigin. Эта функция обращается к стандартным функциям Windows и возвращает корректное значение смещения. Результирующее значение имеет тип TPoint (Координатная точка), представляющий собой запись из двух элементов: X и Y. Procedure TForm1.FormMouseUp (Sender: TObject; Button: TMouseButton; Shift: TshiftState; Var P: TPoint; Begin P:= GetClientOrigin; If Button = mbRight Then PopupMenu1.Popup (P.X+X, P.Y+Y) End; Компонент независимый переключатель (Флажок) (TCheckBox) Используется для фиксации включенного или выключенного состояния (одного из двух). Пользователь может указать свое решение типа Да/Нет или Да/Нет/Не_Знаю (в последнем случае в окошке компонента устанавливается флаг выбора, но само окошко закрашивается серым цветом). Это решение отражается в свойстве State компонента, доступном как для чтения, так и для записи. В составе диалогового окна может быть несколько компонентов TcheckBox. Состояние любого из них не зависит от состояния остальных, поэтому такие переключатели называют независимыми. Типичное применение компонента: If CheckBox1.Checked Then ……. Else ……. Или: CaseCheckBox1.Stateof cbChecked : …; cbUnChecked : …; cbGrayed : …; End; Свойства компонентов:
Компонент зависимый переключатель (TRadioButton). Переключатель предназначен для выбора одного значения из ряда возможных. Переключатели всегда используются группами. Когда пользователь выбирает один из них, то выделение с текущего переключателя снимается. Таким образом, в группе выделен всегда ровно один переключатель. В компонент-контейнер формы помещается как минимум два компонента TRadioButton. Они могут иметь только два состояния определяемые свойством Checked. Если в одном компоненте это свойство принимает значение True, во всех других компонентах, расположенных в том же контейнере, свойства Checked принимают значения False. Компонент список выбора (TListBox). Компонент класса TListBox представляет собой стандартный для Windows список выбора, с помощью которого пользователь может выбрать один или несколько элементов выбора. Список может содержать не только строки, но и произвольные изображения. Свойства компонента:
Создание элементов списка компонента реализуется с помощью методов его свойства Items – Add, Append, Insert или LoadFromFile. Пример. procedure TForm1.BitBtn1Click(Sender: TObject); begin ListBox1.Items.Add('Желтый'); Case ListBox1.ItemIndex Of 0: Form1.Color:=clred; 1: Form1.Color:=clgreen; 2: Form1.Color:=clyellow; End; end; Компонент раскрывающийся список выбора (TComboBox). Представляет собой комбинацию списка TДistBox и редактора TEdit, большинство его свойств и методов заимствовано у этих компонентов. Компонент Группа переключателей (TRadioGroup). Если в форме требуется использовать несколько групп переключателей то можно применить один из двух подходов. Можно выделить для каждой группы специальный объект (панель), в который будут помещаться переключатели. Второй подход состоит в использовании компонента TradioGroup, который объединяет свойства и методы, обеспечивающие поддержку группы переключателей. После размещения на форме компонента TRadioGroup входящие в него переключатели задаются перечислением их названий. Эти названия вводятся в свойство Items (пункты, параграфы) имеющее тип TString. Для ввода нескольких строк можно использовать специальный редактор вызываемый щелчком по кнопке , расположенной справа в строке, описывающей свойство Items. Чтобы сделать некоторые буквы в названиях переключателей «горячими» перед ними нужно указать значок &. Свойство Caption определяет заголовок группы. Свойство Columns задает число столбцов образованных переключателями. Свойство ItemIndex содержит номер выделенного переключателя (значение по умолчанию – 1 показывает, что не один переключатель не выбран). Если в момент появления компонента на экране в каком-то переключателе выбор уже должен быть установлен, то необходимо изменить значение свойства ItemIndex с помощью Инспектора объектов или программным путем. Например, в обработчике OnActivate формы. Проанализировать выбор пользователя можно, например следующим образом:
|
||||||||||||||||||||||||||||||||||||||||||
|