Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Вопрос №5 События




Вопрос №4 Функции

Функции – это такие же подпрограммы, как и процедуры. Отличие функций от процедур в том, что они не просто выполняют какие-то действия и расчеты, но и могут возвращать результат определенного типа. Поскольку они возвращают результат, необходимо указать тип этого результата. Синтаксис функции такой:

function NameFunc(Param: Тип): Тип_возвращаемого_значения;var //объявление переменных (необязательно)begin //тело функции Result:= результат вычислений;end;

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

Есть еще один способ вернуть из функции результат вычислений: использовать переменную с таким же именем, как и имя функции. Эту переменную тоже объявлять не нужно. В нашем примере, строка

Result:= результат вычислений;

будет полностью идентичной строке

NameFunc:= результат вычислений;

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

function Delenie(a,b: Integer): Real;begin Result:= a / b;end;

Теперь заменим ту строку, где в третью переменную записывается результат деления первых двух, на вызов функции и передачу ей этих двух чисел:

Perem3:= Delenie(Perem1, Perem2);

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

 

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

Давайте улучшим наш пример, введем в него событие. Выделите компонент Edit1. Сейчас мы зададим ему событие OnChange, которое происходит всякий раз при изменении текста в этом компоненте. Давайте представим себе пользователя, работающего с нашей программой. Ему будет приятно, если он начнет менять текст в первом поле, а остальные поля автоматически очистятся, чтобы быть готовыми для новых расчетов!

Выделим компонент Edit1.

Перейдем в инспекторе объектов на вкладку Events (события).

Дважды щелкнем по событию OnChange (Изменение).

Создастся процедура обработки события, и мы попадем в редактор кода. Там мы впишем две строки:

Edit2.Clear;Edit3.Clear;

Теперь вставим еще одну "защиту от дураков". Ведь третье поле нужно только для результата? А вдруг пользователь начнет там вводить данные? Страшного ничего не произойдет, в расчетах это поле не участвует, но все равно неприятно, когда твою программу используют неправильно.

Выделите компонент Edit3.

На вкладке Properties (свойства) найдите свойство ReadOnly (только для чтения), и вместо False (ложь), поставьте True (истина). Все, теперь пользователь не сможет вводить данные в это поле, только программа сможет выводить в него результат.

Сохраните проект, выполните Run и убедитесь в этом.

 




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 320; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.