Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Создание заготовок процедур-обработчиков событий. Текст модуля программы





Для каждой формы, являющейся прообразом окна будущей программы, система Delphi создает отдельный модуль программы, в строго определенные места которого программист вписывает (вводит с клавиатуры) описания (объявления) элементов и операторы языка Object Pascal, реализующие алгоритм решения поставленной задачи. Другими словами; текст модуля доступен как системе Delphi, так и программисту. Поэтому программисту необходимо внимательно и точно работать в окнах формы (Form1) и редактора текста программы (Unit1.pas). Совместное с Delphi владение текстом модуля будет вполне успешным, если программист будет соблюдать простое правило: он не должен удалять или изменять строки, которые вставлены не им, а системой Delphi.

Содержимое двух разделов модуля (интерфейсного и реализации) система Delphi изменяет в зависимости от числа размещенных на форме компонентов программистом и последующих его действий. После оформления окна программы, наиболее ответственными моментами для программиста являются создание заготовок процедур-обработчиков событий (заготовок методов) и их программирование.

Создать заготовки процедур-обработчиков событий можно двумя способами. При первом способе:

- выбирается компонент (ЩЛК на нём);

- в окне Object Inspector открывается страница Events (ЩЛК на вкладке Events);

- в левой колонке этой страницы находится строка с названием события (например, OnCreate (пер. При создании)), затем в правой колонке этой строки производится 2ЩЛК.

2-й способ гораздо проще: вначале выбирается компонент (ЩЛК на нём) и производится 2 ЩЛК на этом компоненте. Delphi создаёт заготовку процедуры-обработки наиболее характерного для этого компонента события.

Например, текст заготовки процедуры, обрабатывающей событие ‘При создании’ (OnCreate) формы, выглядит так:

 

procedure TForm1.FormCreate(Sender: TObject); // Заголовок процедуры

begin // Начало тела процедуры

end; // Конец описания процедуры

 

После подготовки процедуры-заготовки, Delphi автоматически вносит её заголовок в описание класса TForm1. Составное имя процедуры TForm1.FormCreate содержит имя компонента Form1 и имя события Create. Это имя следует читать (в переводе с английского языка) справа налево: при создание формы компонента TForm1.

Перед созданием очередной заготовки процедуры, необходимо в окне Редактора текста программы переместить курсор в начало пустой строки, следующей после end; (конец описания предыдущей процедуры).

Операторы языка Object Pascal, реализующие алгоритм решения задачи, вводятся в полученную заготовку программистом между открывающей операторной скобкой begin и закрывающей операторной скобкой end;, фиксирующей конец описания процедуры – обработчика события. Совокупность этих операторов иногда называют телом процедуры.

Типы всех программных элементов, используемых операторами программы, могут быть описаны:

- между заголовком и телом процедуры-обработчика события в секции описания переменных (после ключевого слова var), если элементы ‘видны’ (локализованы) только в процедуре;

- в секции var интерфейсного раздела модуля, если элементы ‘видны’ (локализованы) для всех процедур-обработчиков событий.

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

 

Задание 1. Составить программу (приложение), обеспечивающую:

- выбор пользователем фамилии студента из предварительно введенного 1-го списка;

- случайный выбор, из предварительно введенного 2-го списка, понятия, которое следует пояснить. Случайный выбор понятия должен производиться при ЩЛК на кнопке ‘Случайный выбор’;

- закрытие окна программы при ЩЛК на кнопке ‘Закрыть’.

 

1. Оформление окна программы

Для создания двух списков используем два компонента ComboBox1 и ComboBox2. Над этими компонентами нанесем надписи ‘Фамилия: ’ и ‘Поясните понятие: ’. Для этого используем два компонента Label1 и Label2. Для случайного выбора понятия и закрытия окна программы используем две командные кнопки Button1 и Button2. Разместив каждую пару одноименных компонентов рядом по горизонтали и соблюдая симметрию относительно вертикальной оси по центру формы, получим окно, представленное на рис. 1.

 

 

Рис. 5. 1. Окно программы для задания 1.

2. Изменение свойств компонентов.

Свойству Caption компонента Form1 зададим значение ‘Задание 1’. Свойствам Caption компонентов Label1, Label2 зададим значения ‘Фамилия:’, ‘Поясните понятие: ’ соответственно. Свойству Items (пер. Пункты) компонента ComboBox1 (после ЩЛК на кнопке с тремя точками), в окне String List Editor (Редактор списка строк) зададим пункты 1-го списка фамилий: Иванов, Петров, Сидоров, Волков, Зайцев, Медведев, Галкин, Соколов, Сорокин, Воробьев. Аналогично свойству Items компонента ComboBox2 зададим пункты 2-го списка понятий, которые следует пояснить: Класс, Тип (в языке Object Pascal), Поле, Свойства, Метод, Модуль, Информация, Процессор, Объект, Файл. Свойствам Caption компонентов Button1, Button2 зададим значения ‘Случайный выбор’ и ‘Закрыть’.

3. Получение заготовок процедур-обработчиков событий и их

программирование.

Создадим 3 заготовки процедур-обработчиков событий:

- procedure TForm1.FormCreate(Sender: TObject);

- procedure TForm1.Button1Click(Sender: TObject);

- procedure TForm1.Button2Click(Sender: TObject);

первым способом.

Введем в полученные заготовки процедур операторы, реализующие алгоритм задания 1.

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

procedure TForm1.FormCreate (Sender: TObject)

введем 2 оператора присваивания:

ComboBox1.Item Index:=0;

ComboBox2.Item Index:=0;

и вызовем стандартную процедуру Randomize (Располагать в случайном порядке), оператором:

Randomize;

Процедура Randomize в зависимости от момента времени запуска программы всегда выдает псевдослучайное число, которое используется для вычисления псевдослучайного числа функцией Random (N).

3.2. Для того чтобы при ЩЛК на кнопке ‘Случайный выбор’ в поле ComboBox2 появлялось случайно выбранное из списка название понятия, в тело процедуры:

procedure TForm1.Button1Click(Sender: TObject),

введем оператор присваивания:

ComboBox2.ItemIndex:=Random(ComboBox2.Items.Count);

В этом операторе функция Random(ComboBox1.Items.Count) вычисляет псевдослучайное число, равномерно распределенное на отрезке [0,N]. Верхняя граница N отрезка задается числом пунктов в списке, т.е. значением подсвойства Count (пер. Число пунктов) свойства Items (пер.Пункты) компонента ComboBox1. В этом задании N = 9, т.к. нумерация пунктов списка начинается с нуля.

3.3. Чтобы при ЩЛК на кнопке ‘Закрыть’, окно проекта закрывалось и выполнение программы прекращалась, в тело процедуры

procedure TForm1.Button2Click(Sender: TObject);

введем оператор вызова стандартной процедуры Close (Закрыть):

Close;

После выполнения приведенных пунктов, текст модуля принимает следующий вид:

unit Unit1;//З аголовок модуля

interface // Начало интерфейсного раздела

Uses

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

Dialogs, StdCtrls;

Type

TForm1 = class(TForm)// Начало описания класса

Label1: TLabel;

Label2: TLabel;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

Button1: TButton;

Button2: TButton;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);







Дата добавления: 2015-10-02; просмотров: 466. Нарушение авторских прав; Мы поможем в написании вашей работы!




Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


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

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Studopedia.info - Студопедия - 2014-2025 год . (0.013 сек.) русская версия | украинская версия