Delphi функции. Учимся создавать и вызывать.

Опубиковано: 24.08.2008 г., автор: , просмотров: 176049

Delphi Функции.

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

Ну для начала немного теории.
Что же такое функция и зачем она нужна?

А нужна она, как не банально это звучит для облегчения жизни программисту. Объявляется она с помощью ключевого слова function затем идет её имя, а в скобках указываются входные параметры. После чего скобки закрываются и указывается тип выходных данных.

Да замудрил я как всегда, на самом деле тут нет ничего сложного, посмотрите на пример и вам все станет предельно ясно:

Пример №1
function Name (X: integer; S: String): Integer;

Как видно из примера сначала идет ключевое слово function, затем имя функции, затем входные параметры с указанием их типов, и в конце за скобками тип выходных данных.

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

Итак, Открываем Delphi создаем новый проект. Нам понадобится один компонент Button, и один компонент label оба с закладки Standart кидаем их на форму. Сделали? Отлично двигаемся дальше.
Теперь переходим к самому сладенькому - создадим нашу первую delphi функцию. Называться она будет просто: Sum, иметь она будет два входных параметра типа integer, выходной параметр будет тоже integer.

Перходим в код и после ключевого слова private пишем вот такую строчку:

function Sum (a, b: integer): integer;

delphi функции

Нажимем комбинацию клавиш CTRL + SHIFT + C и delphi автоматически сгенерирует вам вот такую штуку:

function TForm1.sum(a, b: integer): integer;
begin

end;

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

Sum:=A+B;

и все !
Как вы уже наверное догадались она будет складывать два числа.

Вызов в программе.

С созданием разобрались, осталось научиться вызывать...! Создаем, обработчик событий OnClick на кнопке, между begin end пишем:

Label1.Caption:=inttostr(Sum(2,2));

Здесь мы вызываем функцию и её результат сразу выводим в label1, т.к выходные данные у неё имеют тип integer, что бы вывести их в label нам нужно перевести их в тип string за что и отвечает конструкция inttostr()

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

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

P.S. Не забываем подписываться на бесплатную мультимедийную рассылку.
Форма для подписки расположена с права и с лева.

До встречи DelphiExpert.ru !!!

До встречи



Похожие материалы

Последние из рубрики

Gigatrop 10 Jul 2009 в 00:00 #
-> mikola

Вызывать функции из другого юнита легко, но нужно чтоб название юнита было записано в строчке Uses (такая есть в самом верху или после implementation). А вызывается как из родного юнита. Если названия функций в другом юните и в первом (откуда вызываешь) одинаковы, то нужно так: Название_нужного_юнитаТОЧКАназвание_функции, типа того: Unit2.myfunc;

-> Владимир

Функция отличается от процедуры только тем, что возвращает значение, ито не обязательно возвращать, пример c возвратом:
function DO(a:boolean):boolean;
begin
result := a;
end;
То есть функция вернет ту же переменную "a". Можно и не возвращать !!! :
function DO(a:boolean):boolean;
begin
Какие-то действия...
end;
Но тогда целесообразнее использовать процедуру, в этом смысл и отличие.

-> Егор

Функции и процедуры понимают именно порядок заявленных переменных. Пример:
procrdure DO(a,b,c:string);
begin
Какие-то действия...
end;
Так вот, вызывая функцию и нужно подразумевать что сначала нужно вписать a, потом b и затем c, - чтобы делфи правильно всё понял. Главное здесь - по порядку.
Gigatrop 10 Jul 2009 в 00:00 #
Ну и движок у вас - коммент по-человечески написать нельзя!
Егор 01 Jul 2009 в 00:00 #
я вот тут не понял если допустим
function del (a, b: integer; r:real;): real;
begin
del:=(a+b)/r;
end;
как ее вызвать ?
form1.caption:=flotostr(del(2,2,2)); и как функция определит где а где б или г ?
Влад 29 Jun 2009 в 00:00 #
Хорошо, научились программировать функции от фиксированное числа аргументов. А как программировать функции от динамического числа аргументов. Например, min(2,4) и min(2,3,4,5,6,7) объявить одной функцией?
mikola 20 May 2009 в 00:00 #
А как вызвать функцию, которая есть в другом unit?

ОтменитьДобавить комментарий