Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Определение функциональности приложения



На любой стадии разработки интерфейсной части приложение можно запустить на выполнение. После компиляции на экране появляется форма приложения, которая выглядит примерно так же, как и при ее разработке. Форму можно перемещать по экрану, изменять ее размеры, минимизировать и максимизировать, а также закрыть нажатием соответствующей кнопки в заголовке или другим способом. То есть форма ведет себя как обычное окно Windows.

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

Допустим, что при создании интерфейса приложения на форме была размещена кнопка Button, предназначенная для закрытия окна. По умолчанию эта кнопка получила имя и заголовок Buttoni, однако заголовок (свойство caption) через Инспектор объектов был изменен на более осмысленный — закрыть. При выполнении приложения кнопку Buttoni можно нажимать с помощью мыши или клавиатуры. Кнопка отображает нажатие на себя визуально, однако никаких действий, связанных с закрытием формы, не выполняется. Подобное происходит потому, что для кнопки не определена реакция на какие-либо действия пользователя, в том числе на нажатие кнопки.

Чтобы кнопка могла реагировать на какое-либо событие, для него необходимо создать или указать процедуру обработки события, которая будет вызываться при возникновении этого события. Для создания процедуры обработки события, или обработчика, прежде всего нужно выделить на форме кнопку и перейти на страницу событий Инспектора объектов, где указываются все возможные для кнопки события (рис. 16).

Рис. 16. Доступ к событиям компонента

Так как при нажатии на кнопку возникает событие Onclick, следует создать обработчик именно этого события. Для этого выполняется двойной щелчок в области значения события Onclick, в результате Delphi автоматически создает в модуле формы заготовку процедуры-обработчика. При этом окно Редактора кода переводится на передний план, а курсор устанавливается в то место процедуры, где программист должен написать код, выполняемый при нажатии на кнопку Buttoni. Так как кнопка должна закрывать окно, то в этом месте можно указать Formi.close или просто close. При этом код модуля формы будет иметь следующий вид:

unit Uhitl;

interface

uses

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

StdCtrls;

type

TForml = class(TForm)

Buttoni: TButton;

procedure ButtonlClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var Formi: TForml;

implementation

{$R *.DFM}

procedure TForml.ButtonlClick(Sender: TObject);

begin

Formi.Close;

end;

end.

Здесь курсивом нами выделен код, который набран программистом, все остальное было создано Delphi автоматически, в том числе включение заголовка процедуры-обработчика в описание класса формы Formi.

При создании обработчика события Delphi автоматически вносит изменения в файл модуля и файл описания. В описание класса формы добавляется строка

procedure ButtonlClick(Sender: TObject);

В тело модуля автоматически добавляется процедура обработки события, не содержащая функциональности.

procedure TForml.ButtonlClick(Sender: TObject);

begin

end;

В дальнейших примерах описатели private и public и комментарии к ним в описании класса формы для краткости не приводятся.

Среда Delphi обеспечивает автоматизацию набора кода при вызове свойств и методов объектов и записи стандартных конструкций языка Object Pascal.

Так, после указания имени объекта и разделяющей точки автоматически появляется список, содержащий доступные свойства и методы этого объекта. При необходимости с помощью комбинации клавиш <Сй1>+<Пробел> можно обеспечить принудительный вызов этого списка. Название выбранного свойства или метода автоматически добавляется справа от точки. Если метод содержит параметры, то отображается подсказка, содержащая состав и типы параметров.

Перечень стандартных конструкций языка вызывается нажатием комбинации клавиш <Ctrl>+<J>. После выбора требуемой конструкции автоматически добавляется ее код. Например, при выборе условного оператора в Редактор кода будет автоматически добавлен следующий текст:

if then

else

Название обработчика TForml.ButtonlClick образуется прибавлением к имени компонента названия события без префикса on. Это название является значением события, для которого создан обработчик, в нашем случае — для события нажатия кнопки onclick. При изменении через Инспектор объектов имени кнопки происходит автоматически переименование этой процедуры во всех файлах (DFM и PAS) проекта.

Аналогично создаются обработчики для других событий и других компонентов. Более подробно события рассматриваются при изучении соответствующих компонентов.

Для удаления процедуры-обработчика достаточно удалить код, который программист вносил в нее самостоятельно. После этого при сохранении или компиляции модуля обработчик будет удален автоматически из всех файлов проекта.

Замечание

При удалении какого-либо компонента все его непустые обработчики остаются в модуле формы.

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

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

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





Дата публикования: 2015-02-18; Прочитано: 756 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...