Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?
Поиск
L


Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 4
Всего онлайн: 4
Зарегистрировано юзеров: 5762
Комментариев на сайте: 623
Новый юзер: Sevnday



Последние комментарии
c
N0E0O7 прокомментировал "Урок 1 - Инициализация OpenGL":
А у меня форма чёрная запускается
dimonsky прокомментировал "Урок 2 - Простые примитивы":
GetDC(handle) вместо canvas.handle, и убрать вызов FormResize. Тогда получается конфетка.



Мы в соцсетях
c
Delphi
Урок 5 - Функции

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

Синтаксис функции:

function имя (входные параметры):тип выходной переменной;
Рассмотрим подробнее на примере программы. Запускаем Delphi, создаем проект и кидаем кнопку и лабел на форму. Далее в редакторе кода находим слово Private.

Private


После слова Private объявляем функцию:
function sum (a, b:integer):integer;
Сейчас нажимаем комбинацию клавиш Ctrl+Shift+C и Delphi автоматически создает загатовку:
function TForm1.sum(a, b: integer): integer;
begin

end;
И между ключевыми словами begin и end пишем то, что будет делать наша функция, а функция будет делать простейшее - сложение переменных a и b, которые мы уже записали, когда объявляли функцию.

Тело функции:
function TForm1.sum(a, b: integer): integer;
begin
sum:=a+b; //Присваиваем функции сумму переменных
end;
Если сейчас запустить программу, то ничего не произойдет, так как функция у нас нигде не вызывается, да и значение переменным a и b мы не указали.

Создаем событие OnClick на кнопке и пишем:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer; //создаем переменную
begin
i:=sum(5,7); //ссумируем
Label1.Caption:=IntToStr(i);//выводим
end;
Разберем строчку, где происходит суммирование. Пишем имя функции, потом в скобках значения для переменных a и b и результат присваиваем переменной i, которую потом выводим в лабел.

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

Ну вот и всё! Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 13 Июля 2012
Просмотров: 27028

Урок 4 - Циклы Урок 6 - Одномерные массивы

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил: Programer [Новичок] Дата: 2012-08-09
Процедура это тоже самое что и функция?




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2012-08-09
Функция возвращает результат, а процедура нет.
P.S. А Вы уже и процедуры освоили? Похвально.




аватар Добавил: Programer [Новичок] Дата: 2012-08-10
thanks




аватар Добавил(а): delfiSkin [Новичок] Дата: 2013-05-18
Хороший урок вычислил конец света)




аватар Добавил(а): delfiSkin [Новичок] Дата: 2013-05-18
не знаю что за глюк произошел но выше написанный комментарий относился к 6 уроку)




аватар Добавил(а): delfiSkin [Новичок] Дата: 2013-05-18
О боже ,оказывается это глюк в моей голове,тот комментарий к этому уроку




аватар Добавил: ДимаДК [Новичок] Дата: 2013-07-14
Поражаюсь похожести Delphi на Паскаль . Думал будет сложно, придется переучиваться, а это полная копия Паскаля ! Сайт просто супер ! Ведь как бы Delphi не был похож на Паскаль, сам бы я в нем не разобрался.




аватар Добавил: RinDproramer [Новичок] Дата: 2013-07-15
Delphi - это и есть Паскаль, только измененный. Немного истории: В 1970 году появился сам Паскаль. В 1978 г. появился диалект Паскаля - UCSD Pascal.В 1983 г. вышла 1-я версия диалекта - Turbo Pascal от фирмы Borland(эта фирма и сделала для нас Delphi), который базировался на UCSD Pascal.В 90-х годах фирма Borland выпустила Object Pascal, ему передалось "наследство" от Turbo Pascal.А Delphi - это по сути вариант языка Object Pascal.Но сейчас Delphi все больше отделяется от "прородителя" - Object Pascal.(Вот так-то)




аватар Добавил(а): Fanner [Новичок] Дата: 2013-12-03
Отличный сайт.Огромнейшее спасибо за уроки как всегда все откладывал, а теперь вот приходится экстерном учить т.к. через пару дней нужно что-то сдать преподу.)




аватар Добавил(а): MothaFucka [Новичок] Дата: 2013-12-31
Комбинация ctrl+shift+c не срабатывает. Embarcadero Delphi XE3




аватар Добавил(а): eltgm [Новичок] Дата: 2014-05-12
не срабатывает комбинация Ctrl+Shift+C. PortableDelphi7




аватар Добавил: Denismen [Новичок] Дата: 2014-06-06
eltgm, не может такого быть




аватар Добавил(а): eltgm [Новичок] Дата: 2014-06-18
Denismen, ты до конца дочитай на PortableDelphi эту функцию вырезали,умник




аватар Добавил(а): Exotic [Новичок] Дата: 2014-10-10
В качестве ДЗ подобрал себе опупительное задание - написать самому дискриминант через функцию. Как ни странно, получилось.




аватар Добавил(а): Dragonfly [Новичок] Дата: 2014-11-26
Спасибо, не сразу все дошло вот код (домашки от Exotic) function TForm1.dis(a,b: integer): integer; begin A:=StrToInt(Edit1.Text); repeat B:=a+b; A:=a-1; until A=0; dis:=b; end; procedure TForm1.Button1Click(Sender: TObject); var c,D:integer; begin D:=dis(0,0); Label1.Caption:=IntToStr(D); end;




аватар Добавил(а): derevyov [Новичок] Дата: 2015-08-11
Замечательный сайт! Очень доступно и понятно! Спасибо




аватар Добавила: shukrona.normatova [Новичок] Дата: 2016-07-06
Здравствуйте. Можете привести ещё более сложный пример?




аватар Добавил(а): spilberg2007 [Новичок] Дата: 2016-07-16
Согласен с shukrona.normatova. Более сложный пример не помешал бы. И еще у функций есть основное свойство выводить информацию в конце расчетов через слово Result




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