Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
M_LRTreug_1.doc
Скачиваний:
10
Добавлен:
06.06.2015
Размер:
157.7 Кб
Скачать
    1. Создание программ обработки событий и решения задачи.

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

  1. Добавим в программу глобальные переменные a, b, c, P, S. Для этого откройте окно текстового редактора с модулем формы «Formgl1», найдите раздел Var и вставьте определения указанных переменных. Текст модуля будем иметь следующий вид. Вставленные элементы выделены другим шрифтом.

unit Formgl1;

interface

uses

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

StdCtrls, AxCtrls, vcf1, OleCtrls, vcfi, ExtCtrls;

type

TForm1 = class(TForm)

StaticText1: TStaticText;

StaticText2: TStaticText;

StaticText3: TStaticText;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

But_exe: TButton;

But_New: TButton;

But_Exit: TButton;

Bevel1: TBevel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

a,b,c : integer;

P,S : Real;

implementation

{$R *.DFM}

end.

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

Для ввода текста фрагмента программы необходимо выделить объект (компоненту) и перейти в инспекторе объектов на вкладку «Events». Нужный объект можно выбрать и из списка объектов – в верхней части инспектора.

Далее – в списке событий необходимо найти нужное событие, выделить его, перейти в окошко ввода (с кнопкой открытия) и щелкнуть 2ЛКМ. Откроется окно редактора в том месте, куда автоматически будет помещена заготовка процедуры обработки события (автоматически заголовок этой процедуры будет вставлен в раздел описания процедур формы).

Аналогичные действия необходимо проделать, если Вы хотите откорректировать какую-либо процедуру обработки события.

  1. Начнем с создания обработчика события «Открытие формы» – «OnCreate».

Щелкните на пустом месте формы, на вкладке Events найдите нужное событие, перейдите в редактор и вставьте в заготовку обработчика событий (процедуру) необходимый текст программы (см. ниже, где «вставка» выделена другим шрифтом):

procedure TForm1.FormCreate(Sender: TObject);

begin

a:= 0; b:= 0; c:= 0;

P:= 0; S:= 0;

Edit1.Text := 'Ввести А';

Edit2.Text := 'Ввести В';

Edit3.Text := 'Ввести С';

end;

  1. «Закрытие формы» – событие «OnCloseQuery». Мы используем обработчик этого события для того, чтобы «перехватить» управление по выполнению операции закрытия, которое инициируется различными элементами управления (см. стр. 5). Этот «перехват» необходимо сделать для того, чтобы вставить сообщение – запрос, с помощью которого пользователь может выбрать один из двух вариантов: либо окончательно закрыть форму и завершить решение задачи, либо вернуться в форму и продолжить работу.

Откройте заготовку обработчика события. В процедуре FormCloseQuery (Sender: TObject; var CanClose: Boolean); используется переменная CanClose логического (булевского) типа. Этой переменной надо присвоить значение True, если форму надо закрыть и значение False – иначе. Данная переменная глобальная и объявлена в одном из присоединенных (в Uses) модулей.

Для формирования сообщения – воспользуемся текстовой константой: stext. Для вывода запроса – используем стандартную функцию «MessageDlg (stext, mtConfirmation, [mbYes,mbNo],0)». Описание функции здесь не приводится (пользуйтесь лекциями и дополнительной литературой).

Текст процедуры должен выглядеть следующим образом:

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

const

stext = 'Завершить работу программы?';

begin

Case MessageDlg (stext,mtConfirmation,[mbYes,mbNo],0) Of

idYes: CanClose := True;

idNo: Begin CanClose := False; Edit1.SetFocus; end;

End;

end;

После формирования процедуры – запустите программу, исправьте синтаксические ошибки, если они появились и проверьте работоспособность обработчика событий (используйте для закрытия формы – оконную кнопку)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]