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 !!!

До встречи



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

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

Сергей 24 Feb 2011 в 00:00 #
Не плохо было бы добавить информацию о функциях с необязательными параметрами. А так все просто и понятно для восприятия.
Павел 10 Feb 2011 в 00:00 #
Спасибо уяснил
Игорь 06 Feb 2011 в 00:00 #
А как такую сложную функцию вызвать?
function GetClipboardBitmap: Boolean;
VAR
hData: HGlobal;
l, v: Cardinal;
p: PChar;
hFile1: THandle;
begin
Result := True;
if OpenClipboard(0) then
begin
try
hData := GetClipboardData(CF_BITMAP);
if hData <> 0 then
begin
try
p := PChar(GlobalLock(hData));
l := GlobalSize(hData);
ShowMessage(IntToStr(l)); // <- ??? ?????? ????
hFile1 := CreateFile(PAnsiChar(′C:ST.bmp′), GENERIC_WRITE, FILE_SHARE_WRITE, nil,
CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0);
SetFilePointer(hFile1, 0, nil, FILE_BEGIN);
WriteFile(hFile1, p^, l, v, nil);
CloseHandle(hFile1);
finally
GlobalUnlock(hData);
end;
end else Result := False;
finally
CloseClipboard;
end;
end else Result := False;
Екатерина 16 Jan 2011 в 00:00 #
Добрый вечер! У меня возник такой вопрос:
Если я работаю с 5 формами и на каждой хочу использовать одну и туже функцию, мне нужно на каждой форме в разделе private прописывать функцию или это достаточно написать 1 раз?
monkhard 07 Jan 2011 в 00:00 #
Отличный пример, без наворотов, долго понять не мог... А тут все просто! Спасибо!

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