Событие

Описание

OnClick

Происходит при щелчке мышью на компоненте.

OnDblClick

Происходит при выполнении двойного щелчка на компоненте.

OnMouseDown

Нажатие клавиши мыши над компонентом. Возможно распознавание нажатой кнопки и координат курсора.

OnMouseMove

Перемещение курсора мыши над компонентом. Возможно распознавание нажатой кнопки и координат курсора.

OnMouseUp

Отпускание раннее нажатой кнопки мыши над компонентом. Возможно распознавание нажатой кнопки и координат курсора.

OnEnter

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

OnExit

Событие в момент потери элементом фокуса.

Для демонстрации рассмотренных событий поместите на форму компонент Label и три компонента Edit. Для событий формы напишите следующие обработчики:

Onclick:                Label1.caption:=’Произошел щелчок по форме!’;

OndblClick:                Label1.caption:=’Произошел двойной щелчок по форме!’;

OnMouseDown:        if Button=mbLeft then Label1.caption:=’Нажата левая кнопка мыши!’;

       if Button=mbRight then Label1.caption:=’Нажата правая кнопка мыши!’;

       if Button=mbMiddle then Label1.caption:=’Нажата средняя кнопка мыши!’;

OnMouseMove:                Label1.caption:=’Координата х=’+inttost(x)+’; Координата y=’+inttostr(y);

НЕ нашли? Не то? Что вы ищете?

OnMouseUp:        if Button=mbLeft then Label1.caption:=’Отпущена левая кнопка мыши!’;

       if Button=mbRight then Label1.caption:=’Отпущена правая кнопка мыши!’;

       if Button=mbMiddle then Label1.caption:=’Отпущена средняя кнопка мыши!’;

Для компонента Edit1 в событии OnEnter напишите:        Label1.caption:=’Edit1 в фокусе!’;

       В событии OnExit:                Label1.caption:=’Edit1 потерял фокус!’;

Для компонента Edit3 в событии OnEnter напишите:        Label1.caption:=’Edit3 в фокусе!’;

       В событии OnExit:                Label1.caption:=’Edit3 потерял фокус!’;

В событиях OnMouseDown,  OnMouseUp, OnMouseMove помимо распознавания координат курсора и кнопки мыши можно определить какую вспомогательную клавишу пользователь нажал на клавиатуре. Для этого используется параметр Shift, который может принимать значения: ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble. Например: для события OnMouseDown формы напишите:

if (Button=mbLeft) and (ssAlt in Shift) then Label1.Caption:=’Нажата левая кнопка мыши вместе с Alt!’;

21. Обработка событий клавиатуры. Распознавание нажатых клавиш

  Существует три события связанных с клавиатурой:


Событие

Описание

OnKeyDown

Событие наступает при нажатии пользователем любой клавиши. Можно распознать нажатые клавиши, но нельзя распознать символ нажатой клавиши.

OnKeyPress

Событие наступает при нажатии пользователем клавиши символа. Можно распознать только нажатый символ.

OnKeyUp

Событие наступает при отпускании пользователем любой клавиши. Можно распознать нажатые клавиши, но нельзя распознать символ отпускаемой клавиши.

Для распознавания нажатых клавиш в этих события используется параметр Key. В событиях OnKeyDown и OnKeyUp он является числовым, т. е. определяет код нажатой клавиши. В событии OnKeyPress он имеет тип Char и определяет нажатый символ.

Для примера напишите для Edit1 обработчики:

OnKeyDown:        if Key=13 then edit2.setFocus; - означает что при нажатии клавиши Enter (эта клавиша имеет код 13) фокус передается в компонент Edit2.

OnKeyPress:        if not (Key in [‘0’..’9’]) then Key:=#0;  - допускает ввод только цифр, при нажатии другого символа он заменяется на пустой.

22. Компо ненты меню. Главное меню и контекстное всплывающее меню

  Основное свойство – Items. Содержит разделы меню. Каждый раздел меню имеет свойства:

       Caption – надпись раздела;

       ShortCut – определяет клавишу быстрого доступа к разделу;

       Default – определяет является ли данный раздел разделом по умолчанию, т. е. разделом, выполняемым при двойном щелчке на родительском разделе;

       Break – используется в длинных меню, чтобы разбить список разделов на несколько столбцов;

       Checked – будет ли в разделе отображаться маркер флажка, показывающий, что данный раздел выбран. В обработчике события OnClick такого раздела надо вставлять оператор MAutoSave. Checked:= not MAutoSave. Checked; где MAutoSave – имя раздела меню.

       RadioItem – должен ли раздел работать в режиме радиокнопки, совместно с другими разделами, имеющими то же значение свойства GroupIndex;

       Enabled – доступность;

       Visible – видимость;

       Bitmap – изображение в разделе;

       ImageIndex – индекс изображения хранящегося в компоненте ImageList.

Для ввода разделительной линии между разделами, в свойство Caption ввести -. Для создания. Для создания в разделе подменю, нужно из контекстного меню данного раздела выбрать команду Create Submenu.

PopupMenu – всплывающее (контекстное) меню.

       Оно всплывает, когда пользователь щелкнет правой кнопкой мыши по какому-либо компоненту. В отличие от главного меню, в приложении может быть несколько контекстных меню. Для каждого компонента контекстное меню задается свойством PopupMenu. Работа с ним аналогична работе с главным меню.

23. Управление формами. Основные свойства форм. Модальные формы

  Основные свойства формы были раннее изучены. Поэтому рассмотрим способы управления приложением, содержащим несколько форм. Включение в проект новой формы осуществляется командой File | New Form. Для вывода имеющейся формы на экран используется команда View | Forms. По умолчанию все формы создаются автоматически при запуске приложения и первая из введенных в приложение форм считается главной. Главная форма отличается от прочих рядом свойств. Во-первых, именно этой форме передается управление в начале выполнения приложения. Во-вторых закрытие главной формы означает завершение выполнения приложения. В-третьих главная форма так же, как и любая другая, может быть спроектирована невидимой, но если все остальные формы закрыты, то главная форма становится в любом случае видимой.

Указанные выше условия, принятые по умолчанию могут быть изменены с помощью команды Project | Options | Forms. В списке Main Form можно выбрать главную форму. Пользуясь двумя нижними окнами можно установить, какие формы должны создаваться автоматически, а какие не должны. Для форм, которые были исключены из списка автоматически создаваемых надо вручную записать процедуру создания формы.

Методы Show и ShowMоdal можно применять только к невидимой в данный момент форме. Если форма выведена методом ShowModal, то пользователь не сможет переключиться на другую форму, пока не закроет эту. Модальные формы используются в большинстве диалоговых окон. Поведение модальной формы определяется ее основным свойством ModalResult. Оно доступно только во время выполнения приложения. При открытии формы методом ShowModal сначала свойство ModalResult=0. Как только при обработке каких-то событий на форме свойству ModalResult будут присвоено значение от 1 до 8, модальная форма закроется. А его значение можно будет прочитать как результат, возвращаемый методом ShowModal.

24. Создание приложений с интерфейсом множества документов

  Типичным приложением с интерфейсом множества документов (MDI) является привычный всем Word. В приложении MDI имеется родите­льская (первичная) форма и ряд дочерних форм (называемых также формами документов). Окна доку­ментов могут создаваться самим пользователем в процессе выполнения приложения с помощью команд типа Окно | Новое. Число дочерних окон заранее неизвестно — пользователь может создать их столько, сколько ему потребуется. Окна документов располагаются в клиентской области родительской формы. Поэтому чаще всего целесообразно в родительской форме ограничиваться только главным меню, инст­рументальными панелями и, если необходимо, панелью состояния, оставляя все остальное место в окне для окон дочерних форм. При этом обычно окно родительской формы в исходном состоянии разворачи­вают на весь экран.

Из родительской формы можно управлять дочерними формами.

Дочернюю форму нельзя уничтожить пока не уничтожена родительская форма.

Для создания приложения MDI необходимо спроектировать родительскую и дочернюю формы. В родительской форме свойство FormStyle устанавливается в fsMDIForm, а в дочерней — в fsMDIChild. Поскольку дочерние окна будет создавать сам пользователь в процессе выполнения приложения, дочер­нюю форму необходимо исключить из числа создаваемых автоматически (Project | Options | Forms).

Рассмотрим теперь, как можно сделать обработчик команды, по которой пользователь задает в ро­дительском окне создание нового окна документов — нового экземпляра дочерней формы. Этот обработ­чик может иметь вид:

Application. CreateForm(TForm2, Form2);

Form2.Show;

При закрытии дочерних окон они в действительности не закрываются, а остаются в свернутом виде, поэтому чтобы этого не происходило следует в событии OnClose дочерней формы записать команду: action:=cafree;

В родительской форме имеется ряд свойств, позволяющих управлять дочерними окнами. Все они доступны только для чтения и только во время выполнения.

Свйойство MDIChildCount определяет количество открытых окон.

Свойство MDIChildren[i] дает доступ к i-му окну (в порядке их создания).

Ряд методов позволяющих упорядочивать дочерние окна: Cascade, Title, ArrangeIcons.

25. Требования к интерфейсу пользователя приложений для Windows

Под графическим интерфейсом пользователя (Graphical User Interface – GUI) подразумевается тип экранного представления, при котором пользователь может выбирать команды, запускать задачи и просматривать списки файлов, указывая на пиктограммы или пункты в списках меню, показанных на экране. Действия могут, как правило выполняться с помощью мыши.

Для пользователя одним из принципиальных преимуществ работы с Windows является то, что большинство имеющихся приложений выглядят и ведут себя сходным образом. Для успеха, разрабатываемое вами приложение так же должно удовлетворять определенным критериям, предъявляемым к приложениям Windows:

Предпочтение отдавать интерфейсу с одним окном. Если все таки приложение с интерфейсом множества документов, то следует использовать окна одинакового размера, предусмотреть вывод заголовков в дочерних окнах и т. д. Использовать ограниченный набор цветов и уделять внимание их правильному сочетанию. Применять стандартные шрифты и предусмотреть возможность выбора шрифтов пользователем. Использовать стандартные меню и размещать их разделы в соответствии с общепринятым стандартом. Каждое окно должно быть тщательно продумано и скомпоновано.  Управляющие элементы и функционально связанные с ними компоненты экрана должны быть зрительно объединены в группы, заголовки которых коротко и четко поясняют их назначение. Определить последовательность табуляции оконных компонентов. Предусмотреть подсказки и контекстно-зависимые справки.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9